Cron +每当不使用RVM时
我正在使用RVM环境。 RUby版本:2.1.2 rails:4.1.1
schedule.rb : every 1.minute do runner "note.send_mail" end
我whenever --update-crontab
使用whenever --update-crontab
来更新cron选项卡。
当我使用crontab -l
检查作业时,它显示如下,没有设置适当的时间。 并且cron工作不起作用。
* * * * * /bin/bash -l -c 'cd /Desktop/folder1/blog2 && bin/rails runner -e production '\''note.send_mail'\'''
有人可以帮我解决这个问题。 谢谢!
转到~/.rvmrc
文件并添加以下内容:
rvm_trust_rvmrcs_flag=1
然后whenever --update-crontab
再次。 根据随时随地的自述文件 :
如果您的生产环境使用RVM(Ruby版本管理器),您将遇到导致您的cron作业挂起的问题。 这与Whenever没有直接关系,调试也很棘手。 您的.rvmrc文件必须是可信的,否则cron作业将挂起,等待文件被信任。 解决方案是通过将此行添加到〜/ .rvmrc中的用户rvm文件来禁用提示
rvm_trust_rvmrcs_flag = 1
这告诉rvm信任所有rvmrc文件。
如果这对您不起作用,请尝试本页中提到的其他解决方案: RVM-Notes 。
您可以定义一个在命令行上加载rvm的自定义运行器,例如
job_type :runner_with_rvm, 'source /etc/profile.d/rvm.sh; cd :path;rvm 2.0@gemset do bundle exec script/rails runner -e :environment ':task' :output' every 1.minute do runner_with_rvm "Note.send_email" end
将2.0@gemset
替换为您想要的ruby版本和gemset。
可能是/etc/profile.d/rvm.sh
也是你环境中的其他东西。