我的应用程序中的计时器类设置为在创建后24小时过期。如何在设定的时间后更改模型的属性
有没有办法在创建日期后24小时运行expire_if_running,还是我必须每分钟运行一次cron作业?
class Timer < ApplicationRecord
enum status: {
running: 1, # the default
expired: 2 # timed out
finished: 3 # completed
}
# if the Timer isn't finished, expire it
def expire_if_running
self.status = "expired" if self.running?
end
end
请提供样本代码或引用您的答案。我从来没有使用过ActiveJob,而且我有这种感觉,这是需要它的那种情况。
我们目前在生产中使用Heroku,但我们计划最终迁移到我们自己的基础设施。不ActiveJob有它自己的语法,像ActiveRecord对它的ORM。 – amingilani
在阅读ActiveJob的文档之后,它似乎将来会在特定时间运行任务。对于“cron job”功能,您可以使用Heroku调度程序。编写一个rake任务,以更新所有过期作业的状态。 –