【发布时间】:2014-02-13 19:59:46
【问题描述】:
#config/scheduler.rb
set :output, 'log/cron.log'
every 1.minutes do
rake 'reports:generate'
end
当我运行crontab -l 时,我得到以下输出:
* * * * * /bin/bash -l -c 'cd <path-to-app> bundle exec rake reports:generate --silent >> log/cron.log 2>&1'
首先,它似乎使用我的system ruby,即1.8.7,有没有办法改变这个?
其次,任务没有运行,但在我的cron.log 中显示的唯一内容如下:
Your Ruby version is 1.8.7, but your Gemfile specified 2.0.0
我已经尝试puts 登录日志但没有成功,所以我基本上不知道发生了什么。似乎任务正在启动,但随后失败,没有任何内容写入日志。我不知道如何调试这个,所以请帮忙。
我在 OS X 上,我的应用程序在 Sinatra 上运行。
编辑:我正在使用rbenv 来管理我的 ruby 版本,所以我想我必须告诉 cron 作业以某种方式加载 rbenv?当我 cd 进入应用程序的文件夹并运行 ruby -v 我得到 p>
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin12.5.0]
【问题讨论】:
-
你当前的ruby版本是1.8.7,切换到2.0.0
标签: ruby cron sinatra whenever