Resque github repository에는이 비밀 보석이 있습니다. 바로이 일을 수행 할 god 작업이 있습니다. 작업을보고 오래된 암호를 삭제하십시오.
https://github.com/resque/resque/blob/master/examples/god/stale.god
는
# This will ride alongside god and kill any rogue stale worker
# processes. Their sacrifice is for the greater good.
WORKER_TIMEOUT = 60 * 10 # 10 minutes
Thread.new do
loop do
begin
`ps -e -o pid,command | grep [r]esque`.split("\n").each do |line|
parts = line.split(' ')
next if parts[-2] != "at"
started = parts[-1].to_i
elapsed = Time.now - Time.at(started)
if elapsed >= WORKER_TIMEOUT
::Process.kill('USR1', parts[0].to_i)
end
end
rescue
# don't die because of stupid exceptions
nil
end
sleep 30
end
end
감사합니다. 이것은 특정 시간이 지난 작업을 죽일 것입니다 (작업이 멈추었는지 아니면 여전히 처리 중인지 여부는 결정하지 않음). 실행중인 작업은 기본 데이터에 따라 24 시간 이상 소요될 수 있습니다. –
@KevinBedell : 시간 제한을 36-48 시간으로 설정할 수 있습니다. –
예 - 사실입니다. 나는 이것이 작업 진행 상황을 직접 모니터링 할 수있는 방법과 결합하여 작업이 가능한지 확인할 수 있어야한다고 생각합니다. –