2010-07-15 48 views
2

有没有办法在ROR中设置一个在特定时间触发的回调?在特定时间在Rails中执行操作

可以说我正在运行一个在特定时间爆发的比赛。可以说7月28日星期一9点。我想成立一​​个观察员,在7月28日星期一9点执行一个功能。轨道是否有办法做到这一点?

回答

2

Delayed Job有一个run_at字段。您必须在后台始终运行一个工作进程并查找需要运行的作业,但是如果您的应用程序正在执行此操作,则可能比编写新的cron作业更容易。

所以,你可以在你的Contest模型的方法被调用的after_create回调,设置了延迟作业AT的指定日期发送电子邮件到随机的赢家。

如果它是一个时间,还是很罕见的合同,不过,我会同意关于使用whenever

+0

会发生这种情况相当多,所以我觉得延迟的工作可能是最好的,谢谢。 – TheDelChop 2010-07-16 05:01:01

0

你最好写一个在你需要的时候通过crontab运行的ruby脚本。

0

我同意crontab,但我喜欢whenever。它与cron很好地集成在一起,你可以用你的repo存储,并且它与capistrano很好地集成。

相关问题