eventmachineで実行されるコードで、呼び出されたかどうかを確認するにはどうすればよいEventMachine::stop
ですか?
これが必要なのは、延期可能な場合に、接続を閉じただけで発生したエラーメッセージをログに記録せず、操作の観点からは面白くないようにするためです。
コードにモンキーパッチを適用する唯一の方法はありますか?
eventmachineで実行されるコードで、呼び出されたかどうかを確認するにはどうすればよいEventMachine::stop
ですか?
これが必要なのは、延期可能な場合に、接続を閉じただけで発生したエラーメッセージをログに記録せず、操作の観点からは面白くないようにするためです。
コードにモンキーパッチを適用する唯一の方法はありますか?
EventMachineクラスのpure-Ruby実装のソースコードを覗いてみると、lib/em/pure_ruby.rb
と呼ばれるインスタンス変数が定義されてい@stop_scheduled
ます。これは、内部で使用したいことを正確に実行するために使用されているようです。現在シャットダウンしている場合は、一部の操作を実行しないでください。
残念ながら、この変数はEventMachine APIの一部として公開されていないため、使用できません。
この種の機能を自分で再実装しなければならないことに悩まされるかもしれません。インスタンス変数を適切なクラスに追加し、シャットダウンが進行中の場合に実行したくないコードを回避します。