I am trying to run a Rake task using crontab in Rails 3.0.9(using RVM), But it is not working.
But when i running in the console it works fine
My Rake Task
namespace :alert do
desc "create some reminder notification"
task :send_reminder => :environment do
p "my task goes here ----"
end
end
My cron task
*/1 * * * * cd /home/anu-karthik/Documents/billguru/ && /home/anu-karthik/.rvm/gems/ruby-1.9.2-p0/bin/rake alert:send_reminder >/home/anu-karthik/alert.out
But I didn't found any log entry in "alert.out" file
also I have tried with following method
*/1 * * * * cd /home/anu-karthik/Documents/billguru/ && rake alert:send_reminder >/home/anu-karthik/alert.out
now output is (in /home/anu-karthik/Documents/billguru)
I think it is the problem with RVM. How do I solve this issue? Thanks in advance
According to RVM documentation: https://rvm.io/integration/cron
For every rvm or gemset there is an environment file which describes it. You can obtain it with:
rvm env --path -- ruby-version[@gemset-name]
That is the path to the environment file of rvm.
It is a good habit when running rake tasks from cron, to invoke them from a shell script.
The crontab should be something like:
*/30 * * * * /path/to/shell/script.sh >/dev/null 2>&1
And then in the shell script :
#!/bin/bash
cd /path/to/project
source /path/to/env/file
rake task
Hope this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With