O que causa EventMachine :: ConnectionNotBound?
-
13-09-2019 - |
Pergunta
Eu sou novo para EventMachine, então eu não sei o que isso significa. Eu estou recebendo essa exceção:
EventMachine::ConnectionNotBound recieved ConnectionUnbound for an unknown signature: ef93a97d4d6441cb80d30fe2313d7de73
O programa é bastante complicado, então eu realmente não posso explicar tudo o que poderia ter levado até ele. Todos necessidade I é um ponteiro para o que procurar. O erro não parece ser documentado (olhando para http://eventmachine.rubyforge.org/ ).
Solução
Eu tive essa exceção levantada quando alguma outra exceção não tratada foi levantado no método de inicialização de uma subclasse de EventMachine :: Connection. Verifique se o arity do seu método de subclasse de inicialização está correta e que o método de inicialização está sendo executado sem erros.
Outras dicas
Normalmente, esses erros ocorrem em inicializar ou post_init. A primeira coisa que você deve fazer é de resgate add dentro de seus retornos de chamada para descobrir o que realmente está causando esse erro.
def initialize(*args)
...
super
rescue Exception
...
end
def post_init
...
super
rescue Exception
...
end
Eu fixo Exceção borbulhante para este caso em EventMachine mais de um ano atrás. É no 1.0 gem de pré-lançamento (gem install eventmachine --pre
) ou melhor, EventMachine uso do repositório.
Eu corri para um problema semelhante e ao investigar deparei https://github.com/igrigorik/em-http-request/issues/190#issuecomment-16995528
Você precisa basicamente de EM::HttpRequest.new
envoltório com EM.schedule
ou EM.next_tick
se você estiver fazendo EM::HttpRequest.new
em seu código, embora o seu âmbito de um EM.defer