我有一個神/ 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塊,我將如何使用它?我的偏好是在上帝而不是在工人本身。 –
使用超時寶石的這種解決方案不起作用。它不殺死線程。 –