Rails: 如何像迁移一样管理 rake 任务

Rails: How to manage rake tasks likewise migrations

我在多个实例上部署了 rails 应用程序,并且在不同实例上有太多 运行 rake 任务,因此很难管理哪些 rake 任务已经 运行 或哪些还剩一个。

有什么方法可以从数据库端管理它,因为 schema_migrations table 由迁移管理。如果是的话,我想知道迁移到底是如何工作的?

有什么建议吗?

  1. 正确方法:使用部署自动化。 Capistrano 是一个不错的选择。那么你永远不需要担心 运行 rake task
  2. 之类的事情
  3. 我认为多次执行rake任务应该没有副作用。如果这样实现任务,就不用担心哪些已经完成,哪些没有完成。
  4. 我想如果你想获得 Rake 任务的状态跟踪,一个简单的方法是实现一个模型来记录 rake 任务的执行状态,并在每次 rake 任务完成时更新模型。

您可以使用 resque-scheduler(https://github.com/resque/resque-scheduler) 来管理和跟踪您的任务。

您可以使用 Progress Bar gem 来监控特定 rake 任务的进度。

并且根据上面的建议,通过capistrano 进行自动化部署是一个不错的选择。您可以在 cap 脚本中管理 rake 任务 运行 序列。