У меня есть настройка God / Resque, которая охватывает несколько рабочих серверов. Время от времени рабочие застревали из-за длинных подключений к опросу и не будут правильно рассчитывать время ожидания. Мы пытались его кодировать (но независимо от того, почему он не работает), пакеты поддержки активности, отправляемые по проводам, не дадут нам легко рассчитать время ожидания.
Я бы хотел, чтобы некоторым работникам (которые я уже разбил на сегменты в своих собственных блоках наблюдения) не разрешалось работать дольше определенного времени. В псевдокоде я ищу условие наблюдения, подобное следующему (то есть перезапускаем этого работника, если выполнение задачи занимает более 60 секунд):
w.transition(:up, :restart) do |on|
on.condition(:process_timer) do {|c| c.greater_than = 60.seconds}
end
Буду очень признателен за любые мысли или указания о том, как этого добиться.