나는 Heroku에서 resque를 사용했는데, 때때로 SIGTERM으로 작업을 중단합니다.복잡한 작업에서 resque-status로 SIGTERM을 처리하는 방법
은 지금까지 나는 간단한 이것을 처리했습니다
우리는 우리가 작업을 추적 할 수 있도록 resque-상태를 사용하기 시작했습니다def process(options)
do_the_job
rescue Resque::TermException
self.defer options
end
하지만, 분명히 위의 방법은 휴식이 작업 윌 실제로 다른 작업으로 연기되었을 때 완료되었습니다.
현재 생각해 보면 resque에서 현재 작업을 지연하는 대신 SIGTERM으로 인해 실패한 작업을 다시 대기시키는 다른 작업이 있어야합니다.
트릭은 몇 가지 작업이 더 복잡 점에서 온다 :
def process(options)
do_part1 unless options['part1_finished']
options['part1_finished']
do_part2
rescue Resque::TermException
self.defer options
end
는 단순히 구조를 제거하고 do_part1이 반복됩니다 때 간단하게 재 시도하는 작업이 예외가 발생합니다.