Cron + whenever not working with RVM

女生的网名这么多〃 提交于 2019-12-06 09:17:08

问题


I am using RVM environment. RUby version : 2.1.2 rails : 4.1.1

schedule.rb : 

    every 1.minute do 
    runner "note.send_mail" 
    end 

I used whenever --update-crontab to update the cron tab.

when I check the jobs using crontab -l it shows up as below with no proper time set up. and the cron job does not work.

 * * * * * /bin/bash -l -c 'cd /Desktop/folder1/blog2 && bin/rails runner -e production '\''note.send_mail'\''' 

Can some one help me out fix this. Thanks!


回答1:


Go to your ~/.rvmrc file and add the following:

rvm_trust_rvmrcs_flag=1

Then whenever --update-crontab again. According to the README of whenever:

If your production environment uses RVM (Ruby Version Manager) you will run into a gotcha that causes your cron jobs to hang. This is not directly related to Whenever, and can be tricky to debug. Your .rvmrc files must be trusted or else the cron jobs will hang waiting for the file to be trusted. A solution is to disable the prompt by adding this line to your user rvm file in ~/.rvmrc

rvm_trust_rvmrcs_flag=1

This tells rvm to trust all rvmrc files.

If that doesn't work for you, try other solutions mentioned in this page: RVM-Notes.




回答2:


You could define a custom runner that loads rvm on the command line, like

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

Replace 2.0@gemset with your desired ruby version and gemset.

Could be that /etc/profile.d/rvm.sh is something else in your environment too.



来源:https://stackoverflow.com/questions/24092681/cron-whenever-not-working-with-rvm

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!