ruby-on-rails - 更新 crontab(无论何时 gem)
问题描述
通过执行无论何时 --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.year
方法时遇到问题,可以使用以下两种替代方法。
1 - 快捷方式
every :year do
rake "maintenances:renew"
end
2 - 表达式
every '0 0 1 12 *' do
rake "maintenances:renew"
end
如果您想了解有关这些选项的更多信息,请查看官方文档。
要测试表达式,我推荐crontab.guru
推荐阅读
- javascript - 为什么我的画布在一段时间后性能下降?
- python - 创建与查询集对应的模型字段
- javascript - Electron js:无法读取未定义的属性“showSaveDialog”
- docker-compose - Windows 卷上的 docker-compose 不起作用
- javascript - socket.broadcast.emit('myMessage', data') 是否会向所有客户端发送消息,即使有些客户端没有将侦听器设置为“myMessage”?
- roslyn - Roslyn - 将分析器集成到构建中,避免双重编译
- python - 循环访问 JSON 结构化数据
- laravel - 解析错误:语法错误,意外的 'F' (T_STRING),需要 ',' 或 ')'
- javascript - 用于碰撞检测的 Matter.js
- ruby-on-rails - Ruby on Rails 我的数据库总是使外键为零,为什么?