更新crontab(每当gem)

时间:2019-01-03 16:00:02

标签: ruby-on-rails ruby cron whenever

通过执行每当--update-crontab命令,将返回以下错误:

/usr/lib/ruby/vendor_ruby/whenever/cron.rb:132:in `parse_as_string': Couldn't parse: 31557600 (ArgumentError)
    from /usr/lib/ruby/vendor_ruby/whenever/cron.rb:112:in `parse_time'
    from /usr/lib/ruby/vendor_ruby/whenever/cron.rb:50:in `time_in_cron_syntax'
    from /usr/lib/ruby/vendor_ruby/whenever/cron.rb:42:in `output'
    from /usr/lib/ruby/vendor_ruby/whenever/cron.rb:36:in `block (2 levels) in output'
    from /usr/lib/ruby/vendor_ruby/whenever/cron.rb:35:in `each'
    from /usr/lib/ruby/vendor_ruby/whenever/cron.rb:35:in `block in output'
    from /usr/lib/ruby/vendor_ruby/whenever/cron.rb:34:in `each'
    from /usr/lib/ruby/vendor_ruby/whenever/cron.rb:34:in `output'
    from /usr/lib/ruby/vendor_ruby/whenever/job_list.rb:151:in `block (2 levels) in cron_jobs'
    from /usr/lib/ruby/vendor_ruby/whenever/job_list.rb:147:in `each'
    from /usr/lib/ruby/vendor_ruby/whenever/job_list.rb:147:in `block in cron_jobs'
    from /usr/lib/ruby/vendor_ruby/whenever/job_list.rb:146:in `each'
    from /usr/lib/ruby/vendor_ruby/whenever/job_list.rb:146:in `cron_jobs'
    from /usr/lib/ruby/vendor_ruby/whenever/job_list.rb:65:in `generate_cron_output'
    from /usr/lib/ruby/vendor_ruby/whenever.rb:10:in `cron'
    from /usr/lib/ruby/vendor_ruby/whenever/command_line.rb:54:in `whenever_cron'
    from /usr/lib/ruby/vendor_ruby/whenever/command_line.rb:106:in `updated_crontab'
    from /usr/lib/ruby/vendor_ruby/whenever/command_line.rb:35:in `run'
    from /usr/lib/ruby/vendor_ruby/whenever/command_line.rb:6:in `execute'
    from /usr/bin/whenever:41:in `<main>'

我的schedule.rb文件:

every 1.year do
  rake "maintenances:renew"
end

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您对1.year方法有疑问,可以使用以下两种替代方法。

1-快捷方式

every :year do
  rake "maintenances:renew"
end

2-表达式

every '0 0 1 12 *' do
  rake "maintenances:renew"
end

如果您想了解有关这些选项的更多信息,请选中official documentation

要测试表达式,我建议crontab.guru

相关问题