【问题标题】:Stop a specific cron job using whenever使用时停止特定的 cron 作业
【发布时间】:2016-12-17 20:23:58
【问题描述】:

我正在使用 whenever gem 并让它工作。可以说,我的schedule.rb 上有 3 个日程安排

every 1.day, :at => '4:30 am' do
  puts "cron 1"
end

every :hour do
  puts "cron 2"
end

every :sunday, :at => '12pm' do
  puts "cron 3"
end

我猜 cron 会运行并让我知道它。我怎样才能停止特定的工作(例如“cron 2”)?,我知道我可以通过运行whenever -c 来停止它,但我不想停止另一个工作(cron 1 和 3),也不想手动编辑 crontab 文件。

【问题讨论】:

    标签: ruby-on-rails cron whenever


    【解决方案1】:

    Cron 是一个基于时间的作业调度程序,在 Unix 环境中作为守护进程运行。人们使用 cron 来安排作业(命令或 shell 脚本)以定期在固定的时间、日期或间隔运行。 Whenever 是一个 Ruby gem,它为编写和部署 cron 作业提供了清晰的语法。

    如果没有手动编辑 crontab 文件,您将无法随意使用它(跳过特定工作)。

    【讨论】:

    • 我不能像我想要的那样使用whenever,但这并不意味着我应该手动编辑 crontab 文件,对吧?也许,我尝试使用 ruby​​ 从头构建一个方法来编辑 crontab,还构建一个定义每个作业的方法(或自定义 whenever gem)。感谢您的解释。
    • @itx 构建了一个编辑 crontab 的方法,这是一个错误的决定。我建议你在 ruby​​ 代码中添加一个逻辑。
    • 我已经阅读了whenever gem 的一些代码,并且我在this line 上找到了一个识别选项,是要为每个文件定义每个作业以识别特定作业吗?所以我可以停止运行 whenever --clear-crontab [some_identifier_name] 的特定作业
    • 这不是 停止作业 操作,它正在编辑 crontab 文件。如果作业已经在运行,您无法通过清理 crontab 文件来停止它。
    • 已经运行,我的意思是 ruby​​ 代码,它已经被 cron 启动了。
    猜你喜欢
    • 2011-05-25
    • 2021-06-18
    • 2019-12-17
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    相关资源
    最近更新 更多