Ruby on Rails 4 Whenever cron job working but not sure about output

236 views Asked by At

I am newbie on Ruby on rails. I have to implement auto-generate mail functionality with cronjobs using whenever gem and I have followed this link http://www.sitepoint.com/schedule-cron-jobs-whenever-gem/
What I have done---
1. Added user_notifier.rb file and set all mail actions as

class UserNotifier < ActionMailer::Base 
  default from: "[email protected]"

  def two_hour_reminder
    mail( :to => '[email protected]' ,:subject => 'Reminder')
  end

  def mail_notification
    UserNotifier.two_hour_reminder.deliver
  end
end

2. Added schedule.rb

every 3.minutes do
  rake 'send_digest_email'
end

3. Added scheduler.rake

desc 'send digest email'
task send_digest_email: :environment do
  UserNotifier.mail_notification.deliver!
end 

4. Added deploy.rb

require 'whenever/capistrano'

set :whenever_environment, defer { stage }
set :whenever_command, 'bundle exec whenever'

After this I have executed command grep CRON /var/log/syslog where i got following log

CMD (/bin/bash -l -c 'cd /home/username/repository && RAILS_ENV=production
 bundle exec rake send_digest_email --silent')

But still I'm not getting any mail in inbox. What I´m missing?

1

There are 1 answers

0
Ni3 On

In schedule.rb, replaced rake 'send_digest_email' with command 'cd /home/username/repository && RAILS_ENV=development bundle exec rake send_digest_email --silent'

:)