我试图创建一个cron作业,运行一个控制器方法与每当宝石,但我遇到了麻烦。我要
编译器:不可执行:仓/轨道
在我的cron.log文件中。
schedule.rb
every 1.minutes do
runner "Reset.reset"
end
reset.rb
class Reset < ActiveRecord::Base
def self.reset
logger.debug("This is the cron job")
end
end
我还运行了whenever --update-crontab来更新cron作业。
为什么日志记录器消息没有显示在日志中?
谢谢你的帮助
crontab -l的输出
sm start rvm
sm end rvm
开始每当生成任务时:/home/john/rails_app/config/schedule.rb PATH=/home/john/bin:/home/john/.local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/john/.rvm/bin
GEM_PATH="”
- /bin/bash -l -c 'cd /home/john/rails_app && bundle exec bin/rails runner -e development '''Reset.reset_payments''' >>/home/john/rails_app/log/cron.log 2>>/home/john/rails_app/log/error.log'
End Whenever生成的任务:/home/john/rails_app/config/schedule.rb
2条答案
按热度按时间dphi5xsq1#
文档指出,对于runner,命令如下所示:
cd :path && bin/rails runner -e :environment ':task' :output
。但在您的crontab中,它看起来像:...bundle exec bin/rails runner -e development...
手动运行
crontab -e
并删除bundle exec,或者在schedule.rb
文件中指定job_type :runner
,如文档所示。对我来说,这解决了问题。p3rjfoxz2#
我最终使用了rake任务而不是runner。