Blazer gem: Scheduled rake tasks not working automatically but work fine when invoked from console

63 views Asked by At

I have set up a couple of rake tasks to run automatically with the whenever gem . The tasks involve running a background Job, performing a database Blazer check and sending failing checks emails.

The last two are provided by the Blazer gem.

This is my schedule.rb file:

set :environment, "development"

every 1.minutes do
  rake "health_check:perform"
end

every 1.minutes do
  rake 'blazer:run_checks'
end

every 2.minutes do
  rake "blazer:send_failing_checks"
end

The "health_check:perform" rake task always performs as expected, and I can see the Job being run in my server log every minute.

The other two, however, don't seem to be executing at all.

I can tell blazer:run_checks is not executing because when a Blazer check is run either manually or automatically, the blazer_checks table last_run_at column value is updated with the timestamp when the last check was run. Also, I can see the update DB transaction in my server log when that happens.

On the other hand "blazer:send_failing_checks" is not working either because well, no emails are ever delivered.

However, if I manually invoke the task from my console via rake "blazer:run_checks" or rake "blazer:send_failing_checks" they perform normally (blazer_checks table is updated and failing check emails are delivered).

I can't spot any error messages in my server log, altough I believe by default rake tasks are set to run in silent mode? Since running whenever -l to list my crontab file returns something like:

* * * * * /bin/bash -l -c 'cd /home/user/code/myapp && RAILS_ENV=development bundle exec rake health_check:perform --silent'

* * * * * /bin/bash -l -c 'cd /home/user/code/myapp && RAILS_ENV=development bundle exec rake blazer:run_checks --silent'

0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * * /bin/bash -l -c 'cd /home/user/code/myapp && RAILS_ENV=development bundle exec rake blazer:send_failing_checks --silent'

Any ideas? How can I debug this?

0

There are 0 answers