如何在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
我知道我可以设置一个变量,并在执行输出时检查它是否已设置,但我觉得这不是“真正的”事情,还是这真的是唯一的解决方案?
最佳答案
尝试EventMachine.stop_event_loop
,它将“导致所有打开的连接和接受服务器运行并关闭”。
关于ruby - Ruby EventMachine,杀死正在运行的进程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18481215/