我有一个神/ resque设置跨越几个工作服务器。每隔一段时间,工作人员就会被长时间的轮询连接堵塞,并且无法正常工作。我们试着围绕它进行编码(但不管它为什么不起作用),保持连接的数据包不会轻易地让它们发送出去。如何编写一个Resque条件,指出“如果一个进程运行时间超过n秒,杀死它”?
我希望某些工人(我已经在他们自己的手表块中已经分出)不允许超过一定的时间运行。在pesudocode,我正在寻找类似以下的手表状态(即如果它需要更长的时间超过60秒完成任务重新启动工人):如何做到这将大大
w.transition(:up, :restart) do |on|
on.condition(:process_timer) do {|c| c.greater_than = 60.seconds}
end
任何想法或指针赞赏。
您是否建议我在复古工人或上帝过渡/条件块中使用它?如果神t/c块,我将如何使用它?我的偏好是在上帝而不是在工人本身。 –
使用超时宝石的这种解决方案不起作用。它不杀死线程。 –