何がEventMachine :: ConnectionNotBoundの原因は?
-
13-09-2019 - |
質問
私はEventMachineに新たなんだので、私はこれが何を意味するのかわかりません。私はこの例外を取得しています:
EventMachine::ConnectionNotBound recieved ConnectionUnbound for an unknown signature: ef93a97d4d6441cb80d30fe2313d7de73
このプログラムは非常に複雑であるので、私は本当にそれまでつながっている可能性があるすべてを説明することはできません。私に必要なのは何を探してへのポインタです。エラーが( http://eventmachine.rubyforge.org/ を見て)文書化されていないようです。
解決
私はいくつかの他の未処理の例外がEventMachine ::接続のサブクラスのinitializeメソッドで育ったときに発生この例外がありました。あなたのサブクラスのinitializeメソッドのアリティが正しいことを確認し、initializeメソッドがエラーなしで実行されていること。
他のヒント
通常、これらのエラーは、初期化やpost_initで発生します。あなたが最初にすべきことは、実際にそのエラーを引き起こしているものを見つけるためにあなたのコールバック内部の救助を追加することです。
def initialize(*args)
...
super
rescue Exception
...
end
def post_init
...
super
rescue Exception
...
end
私は一年以上前にEventMachineで、この場合のためにバブリング例外を修正しました。これは、プレリリース1.0 GEM(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
でEM.defer
をラップする必要があります