EventMachine :: ConnectionNotBound의 원인은 무엇입니까?
-
13-09-2019 - |
문제
나는 EventMachine을 처음 사용하므로 이것이 무엇을 의미하는지 잘 모르겠습니다. 나는이 예외를 얻고있다 :
EventMachine::ConnectionNotBound recieved ConnectionUnbound for an unknown signature: ef93a97d4d6441cb80d30fe2313d7de73
이 프로그램은 상당히 복잡하므로 실제로 이끌어 낸 모든 것을 설명 할 수는 없습니다. 내가 필요한 것은 무엇을 찾아야하는지에 대한 포인터입니다. 오류는 문서화되지 않은 것 같습니다 ( http://eventmachine.rubyforge.org/).
해결책
EventMachine :: Connection의 서브 클래스의 초기화 방법에서 다른 처리되지 않은 예외가 제기되었을 때이 예외가 제기되었습니다. 서브 클래스 초기화 메소드의 Arity가 정확하고 초기화 메소드가 오류없이 실행되고 있는지 확인하십시오.
다른 팁
일반적으로 이러한 오류는 초기화 또는 post_init에서 발생합니다. 가장 먼저해야 할 일은 콜백 내부의 구조를 추가하여 실제로 오류의 원인을 찾는 것입니다.
def initialize(*args)
...
super
rescue Exception
...
end
def post_init
...
super
rescue Exception
...
end
1 년 전 이벤트 마치 에서이 경우에 대한 예외 버블 링을 수정했습니다. Prerelease 1.0 보석에 있습니다 (gem install eventmachine --pre
) 또는 더 나은 리포지토리에서 EventMachine을 사용하십시오.
나는 비슷한 문제를 겪었고 조사하는 동안 https://github.com/igrigorik/em-http-request/issues/190#issuecomment-16995528
기본적으로 포장해야합니다 EM::HttpRequest.new
~와 함께 EM.schedule
또는 EM.next_tick
당신이 만들고 있다면 EM::HttpRequest.new
코드에서 a EM.defer