如何在rails中每隔一天减少一次字段值?

时间:2014-09-24 15:58:23

标签: ruby-on-rails ruby

一种方法是使用cron作业。 https://github.com/javan/whenever

还有其他办法吗?

2 个答案:

答案 0 :(得分:1)

如果您认为cron是"单向"要做到这一点,是的,有无数"其他方式"。这是因为所有这些方法基本上都是做同样的事情......安排任务定期运行。

不要将cron或任何其他日程安排工具视为应用程序的一部分。分离"执行任务"来自"安排任务的关注。"一旦你有一个执行任务的应用程序(如果这个案例中的任务只是递增一些持久值,那么整个应用程序将会非常小)然后单独你将使用一个调度系统来安排任务。

cron可以做到这一点。无数其他人也是如此。您甚至可以编写自己的调度程序作为某种守护程序或后台服务运行(术语取决于平台,有关调度程序的平台差异是保持关注点分离的关键原因)。

答案 1 :(得分:1)

此外,您可以使用任何熟悉红宝石的背景工作者。 例如sidekiqrescue。两者都有用于处理定期任务的插件

sidekiq:sidetiq - 很棒的选择。它具有完整的接口,集成在标准的sidekiq监控工具中。我在我的所有项目中使用它。

resque:resque-scheduler - 几年前我使用过这个调度程序。我所知道的一切,它做得很好。