【问题标题】:How to create dynamic cron in Ruby on Rails?如何在 Ruby on Rails 中创建动态 cron?
【发布时间】:2015-05-18 22:26:23
【问题描述】:

我想在创建某个实体后每 2 分钟执行一次 cron,我应该只能通过代码来停止它。有可能吗?

【问题讨论】:

  • 你看过whenever吗? github.com/javan/whenever
  • 欢迎来到 Stack Overflow。 “要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题和已完成的工作到目前为止解决它。”

标签: ruby-on-rails ruby ruby-on-rails-4 cron


【解决方案1】:

对于我现在能想到的最简单的方法,您可以按照@tlehman 所说的操作并在代码中添加“检查标志”。 (可能只是文件名中的一个简单变量)

所以在 cron 启动之前,它应该检查一个带有值 true/false 的 X 变量的文件。

如果为真则应该运行代码,如果为假则退出。

(然后您可以编写另一个代码来修改该“检查文件”以启用/禁用 cron)

【讨论】:

  • 感谢菲尔曼。你能告诉我如何在任何模型的 after_create 过滤器中安排一个 cron 作业吗??
【解决方案2】:

这听起来像是 whenever gem 的工作,你可以像这样使用它的简单 DSL:

every 2.minutes do
  runner "SomeRubyCommand.do_work"
end

【讨论】:

  • 如何在创建实体后安排 cron 以及如何停止它?我不希望这个过程永远存在。
  • @firman-gautama 有一个解决方案,让代码依赖于一些标志,你可以在你的数据库中设置标志。
猜你喜欢
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 1970-01-01
  • 2011-08-01
相关资源
最近更新 更多