1

我已经看到了几种解决方案:

  1. Redis / Resque
  2. 延迟作业
  3. Heroku 调度程序
  4. 发条

Heroku 调度程序无法工作,因为它在随机时间运行,并且每 10 分钟最频繁地运行一次。

在雪松上奔跑。运行多个网络测功机。

编辑:这就是我想要做的:
在未来的任意点调用带有参数的任意方法。就像是Schedule.set(Notification.send_update_to_user(574), Time.now + 1.days)

4

3 回答 3

3

我会选择 Sidekiq,尽管还有其他几个适合您的示例的选项。Sidekiq 允许您安排作业在未来的任意时间运行:

NotificationUpdateWorker.perform_at(Time.now + 1.day, 574)

延迟的扩展会让你改写:

Notification.delay_for(1.day).send_update_to_user(574)
于 2012-09-21T13:32:51.170 回答
1

尝试使用 rufus/调度程序。

需要'rubygems' 需要'rufus/scheduler'

调度程序 = Rufus::Scheduler.start_new

scheduler.every '1m' 做
Checkin.check_checkin()
end

于 2012-09-21T05:12:57.073 回答
0

在查看了不同的选项后,我选择了延迟作业,这在 Heroku 上有很好的记录。

对于需要在每天某个时间或每小时运行一次的作业,Heroku 调度程序运行良好,但有时它不会运行。

于 2012-10-20T20:39:12.177 回答