Cron 作业捆绑器错误

问题描述 投票:0回答:2

我正在尝试创建一个 cron 作业,该作业使用每当 gem 运行控制器方法,但我遇到了麻烦。我越来越

捆绑程序:不可执行:bin/rails

在我的 cron.log 文件中。

时间表.rb

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

重置.rb

class Reset < ActiveRecord::Base      
  def self.reset
    logger.debug("This is the cron job")         
  end    
end

我还运行了 every --update-crontab 来更新 cron 作业。

为什么日志中没有显示记录器消息?

感谢大家的帮助。

crontab -l 的输出

sm 启动 RVM

sm端rvm

开始每当生成任务时: /home/john/rails_app/config/schedule.rb PATH=/home/john/bin:/home/john/.local/bin:/usr/local/sbin:/usr/local/bin:/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 && 捆绑执行 bin/rails runner -edevelopment '\''Reset.reset_ payments'\'' >>/home/john/ rails_app/log/cron.log 2>>/home/john/rails_app/log/error.log'

结束每当生成任务时: /home/john/rails_app/config/schedule.rb

ruby-on-rails ruby cron whenever
2个回答
0
投票

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


0
投票

文档指出,对于跑步者,命令如下:

cd :path && bin/rails runner -e :environment ':task' :output
。但在你的 crontab 中它看起来像:
...bundle exec bin/rails runner -e development...

运行

crontab -e
并手动删除bundle exec,或者在
job_type :runner
文件中指定
schedule.rb
,如文档中所示。对我来说,这解决了问题。

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

every 1.minutes do
  runner "Reset.reset"
end
© www.soinside.com 2019 - 2024. All rights reserved.