替代heroku上的简单cron任务的延迟工作?

时间:2012-05-15 02:30:55

标签: ruby-on-rails heroku background-process

在Heroku的Rails应用程序中,我想在将来的5个特定时间执行一个简单的代码块(每个代码大约相隔一天),直到第二个。

如果没有后台流程,有没有一种好方法可以做到这一点?

我不想使用延迟工作,因为它需要一个每月费用约30美元的工作人员实例。似乎没必要。

如果没有延迟工作/ Heroku工作人员,有没有好办法呢?

解决

感谢您的回答 - 看起来没有一个可靠的方法来实现这一目标。跟着迟到的工作。

5 个答案:

答案 0 :(得分:1)

使用rake任务和heroku调度程序

https://devcenter.heroku.com/articles/scheduler

  

调度程序加载项将运行一次性进程,该进程将计入当月的dyno-hours。

答案 1 :(得分:1)

您可以在Heroku Scheduler中使用Rake任务,然后添加一些智能逻辑:sleep until job_is_available if job_is_available_in_less_than_twelve_minutes?

然后,您需要花时间运行代码,并且您的rake任务需要几秒钟来检查作业是否可用。大约1-3美元,因为Heroku支持率到第二。

答案 2 :(得分:1)

您可以使用调度程序执行此操作,只需在任务运行时检查日期/小时等 - 这样您就可以安排每小时的工作(如果这对您有用),然后检查当前的日/时看看它是否是你想要运行的工作,然后在检查中运行它。不理想,但会奏效。

答案 3 :(得分:1)

看那里。这是类似的问题。 Question with answers

答案 4 :(得分:1)

老问题,但是......

也许它可以解决您的问题:Sucker Punch

你不需要在Heroku上额外的dyno。并且可以指定5个块之间的时间。