Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

scheduling a job every minute Rails 3.1 on Heroku

I want to run a task every minute on Heroku to check if conditions are met to time-out certain user tasks. I can only run a Heroku cron job every hour, so what's the best way to set up a timed task like this. I am using Rails 3.1 on Heroku.

like image 785
Richard Jordan Avatar asked Sep 06 '11 06:09

Richard Jordan


1 Answers

Clockwork is the way to go but I will suggest another workaround.

Use scheduler (every 10min) + delayed jobs to execute the task every minute. This seems a little bit more reliable solution than the one without scheduler.

MyJob.run!

(1..8).each |i|
   MyJob.delay(run_at: i.minutes.from_now).run! # create 8 more jobs (each start 1 minute later)
end
like image 142
knagode Avatar answered Oct 12 '22 14:10

knagode