簡體   English   中英

每當 Rails 中的 cron 的 gem 無法在 Mac 中運行並且找不到日志時

[英]Whenever gem for cron in Rails can not be running in Mac and can't found the log

在我的config/schedule.rb中:

set :environment, "development"
set :output, "log/cron.log"

every 2.minutes do
  rake "reset_expired_pin:generate"
end

然后我運行whenever --update-crontab --set environment='development'然后crontab -l我在該列表中看到 cron 並且在我每 2 分鍾刷新一次數據庫后,它不會更新任何東西(我的 rake 命令未運行),我在這個 StackOverflow 上搜索了這個問題,並按照答案所說的進行操作,但沒有用,所以我最后在這里尋求幫助, wheneever gem是否在 OSX 上不支持? 並且不能在開發模式下運行?? 我也找不到那個 cron 的日志文件,我以為它會保存在我的 Rails 應用程序根目錄中,但它沒有,我按照這個說明獲取日志,我按照這個說明運行,但沒有運氣在我的 Mac 中找到這個日志

crontab -l


# Begin Whenever generated tasks for: /Users/me/Documents/myapp/config/schedule.rb at: 2020-05-16 07:12:15 +0800
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * * /bin/bash -l -c 
'export PATH="$HOME/.rbenv/bin:$PATH"; eval "$(rbenv init -)"; cd /Users/me/Documents/myapp && RAILS_ENV=development bundle exec rake reset_expired_pin:generate --silent >> log/cron.log 2>&1'

# End Whenever generated tasks for: /Users/me/Documents/myapp/config/schedule.rb at: 2020-05-16 07:12:15 +0800

我剛剛發現,從昨天開始發現這個問題,現在才發現,要解決它,如果您使用 RBENV,我們應該設置 RBENV 的環境並設置 ruby 的版本,它會找到 ruby-version在你的根文件 app rail 中我設置了它

set :rbenv_root, '~/.rbenv'
set :rbenv_version, '2.7.1'
env 'RBENV_ROOT', rbenv_root
env 'RBENV_VERSION', rbenv_version
job_type :rake, 'export PATH="$HOME/.rbenv/bin:$PATH"; eval "$(rbenv init -)"; cd :path && :environment_variable=:environment bundle exec rake :task --silent :output'
set :environment, "development"

RBENV 的 env 必須在頂部和那個job_type:我們將其設置為獲取 rbenv 的路徑,因為它會在 bash 之前運行

有一件事更重要,Mac 上的 ~/Libary 必須是可執行的,因此我們可以按照以下步驟為 cron 設置它: https://blog.bejarano.io/fixing-cron-jobs-in-mojave/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM