wheneverを使用して、定期的にユーザーにメールを送りたい
解決したいこと
Ruby on RailsにてEC2にデプロイをしました。
wheneverを使用して、定期的にユーザーにメールを送りたいです。
※wheneverの挙動確認の為、1分毎にしております
ご存じの方がいましたら、ご教示ください。
【現状の挙動確認】
・ローカルでのAction Mailerは挙動確認済
・ローカルでのwheneverは挙動確認済
・EC2にて、Action Mailerは挙動確認済
発生している問題・エラー
schedule.rbに記述してる指定時間が本番環境だと反映されない。
該当するソースコード
require File.expand_path(File.dirname(__FILE__) + '/environment')
set :path_env, ENV['PATH']
job_type :runner, "cd :path && PATH=':path_env' bin/rails runner -e :environment ':task' :output"
job_type :rake, "cd :path && PATH=':path_env' :environment_variable=:environment bundle exec rake :task --silent :output"
rails_env = ENV['RAILS_ENV'] || :production
set :output, "#{Rails.root}/log/cron.log"
set :environment, rails_env
# 毎月1日の9:30に起動(月1)
every 1.minutes do
rake "thanxmailer_a:thanxmailer_a"
end
# 毎月1日の9:30に起動(月2)
every '30 16 31 * *' do
rake "thanxmailer_b:thanxmailer_b"
end
# 毎月15日の9:30に起動(月2)
every '30 9 15 * *' do
rake "thanxmailer_c:thanxmailer_c"
end
ローカル環境には反映されいる
# 設定内容が問題ないか確認
ローカルアプリケーションにて % bundle exec whenever
* * * * * /bin/bash -l -c 'cd /Users/・・・
30 16 31 * * /bin/bash -l -c 'cd /Users/・・・
30 9 15 * * /bin/bash -l -c 'cd /Users/・・・
本番環境には反映されていない
# 設定内容が問題ないか確認
[ec2-user@本番環境アプリケーションにて]$ RAILS_ENV=production bundle exec whenever
30 9 1 * * /bin/bash -l -c 'cd /var/www/subscription && PATH='\''/home/ec2-user/・・・
30 9 1 * * /bin/bash -l -c 'cd /var/www/subscription && PATH='\''/home/ec2-user/・・・
30 9 15 * * /bin/bash -l -c 'cd /var/www/subscription && PATH='\''/home/ec2-user・・・
自分で試したこと
【EC2 whenever】などで調べて色々修正しましたが反映されず
これが実装できればEC2にてwheneverで、定期的にユーザーにメールを送る機能ができるのかな、、と思っております。