Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在我在 eventmachine 上运行的代码中,我如何知道是否EventMachine::stop已被调用?
EventMachine::stop
我需要这个,以便在我的延迟中我不会记录仅由关闭连接导致的错误消息,因此从操作的角度来看并不有趣。
猴子补丁代码的唯一方法是什么?
如果您查看了 EventMachine 类的纯 Ruby 实现的源代码,其中lib/em/pure_ruby.rb定义了一个名为@stop_scheduled. 它似乎在内部用于完全执行您想要执行的操作 - 如果我们当前正在关闭,请不要执行某些操作。
lib/em/pure_ruby.rb
@stop_scheduled
不幸的是,这个变量没有作为 EventMachine API 的一部分公开,所以你不能使用它。
您可能不得不自己重新实现这种功能。将实例变量添加到适当的类中,并在关闭过程中对您不希望执行的代码设置一些保护措施。