1

在我在 eventmachine 上运行的代码中,我如何知道是否EventMachine::stop已被调用?

我需要这个,以便在我的延迟中我不会记录仅由关闭连接导致的错误消息,因此从操作的角度来看并不有趣。

猴子补丁代码的唯一方法是什么?

4

1 回答 1

1

如果您查看了 EventMachine 类的纯 Ruby 实现的源代码,其中lib/em/pure_ruby.rb定义了一个名为@stop_scheduled. 它似乎在内部用于完全执行您想要执行的操作 - 如果我们当前正在关闭,请不要执行某些操作。

不幸的是,这个变量没有作为 EventMachine API 的一部分公开,所以你不能使用它。

您可能不得不自己重新实现这种功能。将实例变量添加到适当的类中,并在关闭过程中对您不希望执行的代码设置一些保护措施。

于 2013-02-08T00:58:35.077 回答