- 直到 cron 的备忘录在任何时候都不能很好地工作 -
写作史
我介绍了上面的 gem 并尝试在本地的 macbook 上定期运行它,但它根本不起作用
・日志在哪里? ? ?
你遇到了什么错误? ? ?结果,执行预期的操作花费了相当长的时间。
我写信是为了传播解决方案和原因,以便在短时间内解决相同的症状。我的环境
PC:MacBook Air(M1,2020)
导轨(应用程序端):6.1.6.1
导轨(终端标准):5.2.8.1不作为主题处理的事项
本文的主题是让cron在mac上使用whenever时正常工作
・如何在“schedule.rb”中描述
・记述的意思
我将解释主题。它没有解释如何使用
结论
日程安排.rbset :output, "#{Rails.root}/log/cron.log" #railsアプリフォルダ内の./log/cron.logにログが出力されるようにする記述 require File.expand_path(File.dirname(__FILE__) + '/environment') set :path_env, ENV['PATH'] rails_env = ENV['RAILS_ENV'] || :development set :environment, rails_env #railsアプリ内の実行環境を変数に代入している job_type :runner, "cd :path && PATH=':path_env' bin/rails runner -e :environment ':task' :output" #railsアプリ上の実行環境と同条件になるよう規定している #:outputで事前にsetしたパスにログの出力先を設定暂时在schedule.rb中加上上面的描述就可以了
补充
如果添加以上不起作用
至少,你应该可以得到日志,所以如果你看日志中的错误内容,你应该可以处理它!原因
mac的cron日志在哪里?
最近的 mac_book cron 似乎设置为不输出日志,除非指定日志输出目标。 . .
和,
日程安排.rbevery '*/1 * * * *' do runner "Movie.publish_check" end如果你把它放在任何时候 ==> cron 而不是只写
表示没有指定日志输出目的地,日志不会输出到任何地方。 . .终端(cron)和应用程序的执行环境不同
错误日志From: motoya@murakamimotoyas-MacBook-Air.local (Cron Daemon) To: motoya@murakamimotoyas-MacBook-Air.local Subject: Cron <motoya@murakamimotoyas-MacBook-Air> /bin/zsh -l -c 'cd /Users/motoya/study/whenevertest && bundle exec bin/rails runner -e development '\''Movie.publish_check'\''' X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=motoya> X-Cron-Env: <USER=motoya> Message-Id: <20220806024702.83064923436@murakamimotoyas-MacBook-Air.local> Date: Sat, 6 Aug 2022 11:47:01 +0900 (JST) /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': Could not find 'bundler' (2.2.33) required by your /Users/motoya/study/whenevertest/Gemfile.lock. (Gem::GemNotFoundException) To update to the latest version installed on your system, run `bundle update --bundler`. To install the missing version, run `gem install bundler:2.2.33` from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path' from /usr/bin/bundle:23:in `<main>'就我而言,上面的日志留在 cron.log
正如我之前介绍的,在我的环境中标准版导轨:5.2.8.1
App rails 版本在任何时候运行:6.1.6.1之间有区别
如果你没有在 cron 端设置任何东西
因为它使用rails的终端标准版本运行
发生了错误。 . .参考
https://qiita.com/uot/questions/a283becff015139ac760
参考上面的答案,我能够解决问题!在最后
以此为契机,别忘了指定 cron 日志输出目的地!
如有错误请随时告诉我!!!
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308623565.html