ruby-on-rails Cron作业调度程序错误

gc0ot86w  于 2023-10-21  发布在  Ruby
关注(0)|答案(2)|浏览(122)

我试图创建一个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

dphi5xsq

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,如文档所示。对我来说,这解决了问题。

job_type :runner,  "cd :path && bin/rails runner -e :environment ':task' :output"

every 1.minutes do
  runner "Reset.reset"
end
p3rjfoxz

p3rjfoxz2#

我最终使用了rake任务而不是runner。

相关问题