Ruby On Rails 6.0 中whenever 定义的定时任务没有执行

环境

  • OS: Manjaro:20.1 i3

  • Rails: 6.0

  • Ruby: 2.7.1

  • whenever: 1.0.0

问题

config/schedule.rb添加配置后,执行whenever --update-crontab,使用crontab -e打开crontab配置文件,看到定时任务已经添加进去了,但是过了一会发现没有执行。

手动把里边的命令复制出来执行,命令执行成功。

应该是缺少某些环境变量的问题,遂 google 之,得一答。

解决方案

config/schedule.rb 前面加上环境变量的设置:

env :PATH, ENV['path']

set :output, "log/cron.log" 		# 顺便加上 log, 方便后面调试

然后再执行

whenever --update-crontab

即可

参考

AskUbuntu: Why crontab scripts are not working?

评论