2011-09-06 4 views
8

Heroku에서 1 분마다 작업을 실행하여 특정 사용자 작업 시간 초과 조건이 충족되는지 확인하고 싶습니다. 나는 매 시간 Heroku cron 작업 만 실행할 수 있으므로 이렇게 시간을 초과 한 작업을 설정하는 가장 좋은 방법은 무엇입니까? 내가 Heroku에서 레일 3.1을 사용하고 있습니다.매분 작업 예약 Heroku on Heoku

답변

7

:run_at과 함께 자동 재시작 작업을 사용하면 delayed_job을 사용할 수 있습니다. 일종의 이런 식으로 뭔가 : 어딘가에 다음

class YourJob 
    def do_interesting_things 
     #... Do what needs to be done. 
     self.delay(:run_at => 1.minute.from_now).do_interesting_things 
    end 

    def self.start_me_up 
     new.do_interesting_things 
    end 
end 

그리고 응용 프로그램의 초기화 중 : 오늘로

YourJob.start_me_up 
+0

감사합니다. 나는 오늘 그것을 시도 할 것이고 작동한다면 대답을 받아 들일 것입니다 :-) –

+0

이것을 해결 했습니까? 나는 1 분마다 갈퀴 작업을 실행할 필요가 있습니다. 그리고 cron을 필요로하는지 스스로 대결 할 수있는 방법이 있어야한다고 생각합니다. 현재 heroku의 cron은 매시간 최대 시간을가집니다. – ylluminate

+0

@yluminate : 나는 결코 들었지만 작동 할 것이고, 시도해보고, 그것이 어떻게 진행되는지 알려줄 것이다. –

8

, 당신이 할 수있는 스케줄링 보석, clockwork. Heroku는 공식적으로이를 지원하며 문서는 here입니다.

+0

환상적인 감사 –

+3

[시계] (https://devcenter.heroku.com/articles/clock-processes-ruby)에는 dyno가 필요하므로 다른 유형의 dyno (시간당 $ 0.05, 두 번째로 청구 가능 - 약 ** $ 35/월 **). 스케줄을 "매분마다"요구하지 않지만 10 분 *, 매시 * 또는 매일 * (특정 시간에) *로 괜찮 으면 * [Heroku Scheduler] (https : //addons.heroku.com/scheduler), 무료 부가 기능. – user664833

+1

시계 작업의 또 다른 한계는 단일 dyno에서만 실행할 수 있다는 것입니다. 따라서 단일 프로세스가 처리 할 수있는 것보다 더 많은 스케줄 작업이 있으면'delayed_job' 솔루션이 더 잘 작동합니다. – Leopd