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

Ruby on rails 如何在rails中每隔一天减少字段值?,ruby-on-rails,ruby,Ruby On Rails,Ruby,一种方法是使用cron作业 还有其他方法吗? < P>如果你认为 Cron < /Cord>是“单向”来做到这一点,那么,有无数的“其他方式”。这是因为所有这些方法本质上都是在做同样的事情。。。将任务计划为定期运行 不要将cron或任何其他调度工具视为应用程序的一部分。将“执行任务”的关注点与“调度任务”的关注点分开。一旦您有一个执行任务的应用程序(如果本例中的任务只是增加一些持久值,那么整个应用程序将非常小),那么您将分别使用调度系统来调度任务 cron可以做到这一点。无数其他人也是如此。您甚

一种方法是使用cron作业


还有其他方法吗?

< P>如果你认为 Cron < /Cord>是“单向”来做到这一点,那么,有无数的“其他方式”。这是因为所有这些方法本质上都是在做同样的事情。。。将任务计划为定期运行

不要将
cron
或任何其他调度工具视为应用程序的一部分。将“执行任务”的关注点与“调度任务”的关注点分开。一旦您有一个执行任务的应用程序(如果本例中的任务只是增加一些持久值,那么整个应用程序将非常小),那么您将分别使用调度系统来调度任务


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

您还可以使用熟悉ruby on rails的任何后台工作人员。 例如和。两者都有用于处理定期任务的插件

赛德基:不错的选择。它具有集成在标准sidekiq监控工具中的完美接口。我在我所有的项目中都使用它


我几年前用过这个调度程序。我所知道的,它做的很好。

我认为使用某种形式的调度器(如每当GEM)和RAKE任务将是你最好的选择。为什么你会认为它们是分开的(你的Con和你的应用程序)?没有cron,您的业务规则可能无法满足。没有它,您就无法进行工作部署。@ashes999:因为执行逻辑和调度逻辑是两个截然不同的问题。首先,如果您将应用程序与特定的调度器实现紧密耦合,那么没有该调度器就无法调用应用程序逻辑。这使得业务逻辑更加僵化,不易移植,也不易测试
cron
或任何调度器都是一个实现细节。这不是商业规则的一部分。计划任务的定义可以是业务规则(例如“每隔一天”),但这些规则的实现是独立的。