有没有办法在ROR中设置一个在特定时间触发的回调?
让我们说我正在举办一场在某个时间过期的比赛。让我们说7月28日星期一9点。我想在7月28日星期一上午9点设立一个观察员。 rails有办法吗?
答案 0 :(得分:2)
Delayed Job中有一个run_at字段。您必须在后台始终运行一个工作进程并查找要运行的作业,但如果您的应用程序正在执行此操作,则可能比始终编写新的cron作业更容易。
因此,您可以在Contest
模型中调用一个方法,该方法在after_create
回调中调用,该方法设置延迟作业,以便在指定日期向随机获胜者发送电子邮件。
如果这是一次或非常罕见的交易,我会同意使用whenever
答案 1 :(得分:0)
你最好在你需要的时候编写一个通过crontab运行的ruby脚本。
答案 2 :(得分:0)
我同意crontab,但我喜欢whenever。它与cron有很好的集成,你可以用你的repo存储它,它与capistrano很好地集成。