Heroku 上每分钟调度一个作业 Rails 3.1
我想在 Heroku 上每分钟运行一个任务,以检查是否满足使某些用户任务超时的条件。我只能每小时运行一次 Heroku cron 作业,那么设置这样的定时任务的最佳方法是什么。我在 Heroku 上使用 Rails 3.1。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
从今天开始,您可以使用日程安排 gem,clockwork。 Heroku 官方支持这一点,您可以在此处找到他们的文档。
As of today, you can the scheduling gem, clockwork. Heroku officially supports this and you can find their documentation here.
您可以将 delayed_job 与带有
:run_at
的自重启作业结合使用。有点像这样:然后在应用程序初始化期间的某个地方:
You could use delayed_job with a self-restarting job with a
:run_at
. Something sort of like this:And then somewhere during your application's initialization:
Clockwork 是可行的方法,但我会建议另一种解决方法。
使用调度程序(每10分钟)+延迟作业每分钟执行一次任务。这似乎比没有调度程序的解决方案更可靠一点。
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.