3

EventMachine で実行中のプロセスを強制終了するにはどうすればよいですか? 以下は例です。10 個のプロセスを開始してから、それらをすべて消去しようとしています (ただし、機能しません)。私の目標は、「完了」出力を持たないことです。

require "rubygems"
require "eventmachine"

class Event
  def start
    sleep(5)
    puts Time.now.to_s + ": Finished!"
  end
end

EventMachine.run do
  events = []
  10.times {
    handle = Event.new
    events << handle

    EventMachine.defer(proc {
      handle.start
    })
  }

  # Terminate all events!
  events.each do |handle|
    handle = nil
    ObjectSpace.garbage_collect
  end
end

変数を設定して、出力時に設定されているかどうかを確認できることは承知していますが、これは「本物」ではないように感じますか、これが本当に唯一の解決策ですか?

4

1 に答える 1

1

を試してみてくださいEventMachine.stop_event_loop。「開いているすべての接続と受け入れているサーバーがダウンして閉じられます」.

于 2013-08-28T11:04:35.600 に答える