Was sind die Ursachen :: eventmachine ConnectionNotBound?
-
13-09-2019 - |
Frage
Ich bin neu in eventmachine, also bin ich nicht sicher, was das bedeutet. Ich erhalte diese Ausnahme:
EventMachine::ConnectionNotBound recieved ConnectionUnbound for an unknown signature: ef93a97d4d6441cb80d30fe2313d7de73
Das Programm ziemlich kompliziert ist, so kann ich es nicht wirklich alles erklären, die geführt haben, nach oben könnte. Alles was ich brauche ist ein Zeiger auf das, was Sie zu suchen. Der Fehler scheint nicht dokumentiert zu werden (mit Blick auf http://eventmachine.rubyforge.org/ ).
Lösung
Ich habe diese Ausnahme ausgelöst hatte, als einige andere nicht behandelte Ausnahme in der initialize Methode einer Unterklasse von eventmachine angehoben wurde :: Verbindung. Überprüfen Sie, ob die arity Ihrer Unterklasse Methode initialize ist richtig, und dass die Methode initialize läuft ohne Fehler.
Andere Tipps
In der Regel treten diese Fehler in initialize oder post_init. Das erste, was Sie tun sollen, ist Rettung in Ihrem Rückruf hinzufügen, was tatsächlich um herauszufinden, dass Fehler verursacht.
def initialize(*args)
...
super
rescue Exception
...
end
def post_init
...
super
rescue Exception
...
end
Ich reparierte Ausnahme für diesen Fall sprudelt in eventmachine vor über einem Jahr. Es ist in dem Pre-Release 1.0 Juwel (gem install eventmachine --pre
) oder besser, die Verwendung von eventmachine Repository.
Ich lief in ein ähnliches Problem und während der Untersuchung kam über https://github.com/igrigorik/em-http-request/issues/190#issuecomment-16995528
Sie müssen grundsätzlich EM::HttpRequest.new
mit EM.schedule
oder EM.next_tick
wickeln, wenn Sie EM::HttpRequest.new
in Ihrem Code, obwohl seine unter einem EM.defer
machen sind