Вопрос

Я новичок в EventMachine, поэтому я не уверен, что это значит.Я получаю это исключение:

EventMachine::ConnectionNotBound recieved ConnectionUnbound for an unknown signature: ef93a97d4d6441cb80d30fe2313d7de73

Программа довольно сложная, поэтому я не могу толком объяснить все, что могло к этому привести.Все, что мне нужно, - это указатель на то, что искать.Ошибка, похоже, не задокументирована (глядя на http://eventmachine.rubyforge.org/).

Это было полезно?

Решение

У меня возникло это исключение, когда какое-то другое необработанное исключение было вызвано в методе initialize подкласса EventMachine::Connection .Убедитесь, что arity вашего метода инициализации подкласса является правильным и что метод инициализации выполняется без ошибок.

Другие советы

Обычно эти ошибки возникают при инициализации или post_init .Первое, что вам следует сделать, это добавить rescue в ваши обратные вызовы, чтобы выяснить, что на самом деле вызывает эту ошибку.

def initialize(*args)
  ...
  super
rescue Exception
  ...
end

def post_init
  ...
  super
rescue Exception
  ...
end

Я исправил пузырящееся исключение для этого случая в EventMachine более года назад.Это в драгоценном камне предварительного выпуска 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 в вашем коде, даже несмотря на то, что он находится под EM.defer

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top