簡體   English   中英

Cron 選項卡無法通過Whenever gem 找到正確的 Ruby 版本

[英]Cron tabs cannot find proper Ruby version via Whenever gem

我想設置一個 cron 選項卡來執行位於我的 Rails 應用程序中的任務。 在我的 config/schedule.rb 中:

every 2.minutes do
  #do something
end

盡管將此任務成功放入我的 cron 作業列表中,但它永遠不會被執行。 當我嘗試手動啟動保存在我的 cron 作業列表中的腳本時,即:

/bin/bash -l -c 'cd /Users/me/Desktop/railsapp && RAILS_ENV=production bundle exec rake reports:fetch --silent'

我收到關於錯誤 Ruby 版本的錯誤:

您的 Ruby 版本是 2.6.3,但您的 Gemfile 指定的是 2.6.6

我使用 rbenv 並且我的本地和全局版本都設置為 2.6.6。 此外,2.6.3 版甚至不在可用列表中。

如何將此版本更改為正確版本並使我的 cron 作業可執行?

我在 Pro M1 上遇到同樣的錯誤。 我的應用程序 ruby 版本為 3.1.2,默認 MAC 系統版本為 2.6.8 我已將以下內容添加到~/.bash_profile文件中:

export RBENV_ROOT="${HOME}/.rbenv"

if [ -d "${RBENV_ROOT}" ]; then
  export PATH="${RBENV_ROOT}/bin:${PATH}"
  eval "$(rbenv init -)"
fi

然后運行. ~/.bash_profile . ~/.bash_profile

將此行添加到schedule.rbenv:PATH, ENV["PATH"]
=> 不要忘記更新 crontab: whenever --update-crontab --set environment='development'

Crontab 正在使用 rbenv。

參考: https://blog.eq8.eu/article/cronntab-rbenv-bundle-exec-rake-task.html

暫無
暫無

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

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