比方说我写个论坛吧,主页显示帖子列表,用户可以 upvote , 然后帖子按热度排序,热度定义为 帖子获得的 upvote 数量与帖子存在时间的比值。
然后每次 帖子得到一个 upvote,就更新一下帖子的热度。
问题在于,如果一个帖子很久没有人 upvote,那这个帖子的更新热度 action 就很久不会被触发。
我只能想到每隔一段时间(比如说一小时)全表更新热度一次。
请问有没有办法定时执行这样的任务呢?或者其实这个问题根本就有更好地解决方案?
谢谢。
gem 'whenever'
#1 楼 @kungs thx, 这个我也搜到了... 看上去像是 cron 加了个套,rails 自己是不能定时任务的是么?
确实是 cron 的封装,rails 自己能不能做定时,我不知道。
这种定时 job,一般框架都不带,就算带上,大多也是鸡肋,有专业的定时 job 来做更好。也可以减轻框架的负担。
#2 楼 @blacktulip 请问定时任务如何调用 rails 中的 controller,model 方法?