前提・実現したいこと
######wheneverとtaskを使用して1分毎にメールを送る設定をしたいです。
上記の実装ができないため、どうか、お知恵をお借りしたいです。
現在、railsにてメールの箇所の挙動確認(ローカル環境)でできてる箇所は下記になります。
【メーラー設定】
・ユーザーがアカウント新規登録時に、登録メールアドレスへ送信(gmailから送信)
・raketaskコマンドでメールは送れている(おそらく、wheneverが動いていない、、、)
ざっくりですが、下記の手順で実装しました
【whenever】
①gem 'whenever', require: false をインストール
②bundle exec wheneverize .でファイルの作成。
③上記作成したファイルに記述したコードは、このあとお見せします。
【task】
.lib/tasksに呼び出したいコードを記述
発生している問題・エラーメッセージ
上記の、「wheneverとtaskを使用して1分毎ににメールを送る」を実現したいため、記述後bundle exec whenever --update-crontabでアップデートを行っても全くメールが送られません
該当のソースコード
schedule.rb
rails_env = ENV['RAILS_ENV'] || :development set :output, "#{Rails.root}/log/cron.log" # ジョブの実行環境の指定 set :environment, rails_env every 1.minute do rake "thanxmailer_a:thanxmailer_a" end
thanxmailer_a.rake
namespace :thanxmailer_a do desc '定期テスト' task thanxmailer_a: :environment do ThanxMailer.a.deliver_now end end
thanx_mailer.rb
class ThanxMailer < ApplicationMailer def complete_registration(user) @user = user mail( subject: "アカウント登録完了のご案内。", #メールのタイトル to: @user.email #宛先 ) do |format| format.text end end def a mail to: "送りたいメールアドレス" end end
ターミナルに記述後、メールは届いておりました。
rake thanxmailer_a:thanxmailer_a
% bundle exec whenever * * * * * /bin/bash -l -c 'cd /Users/uot/projects/subscription && RAILS_ENV=development bundle exec rake thanxmailer_a:thanxmailer_a --silent >> /Users/uot/projects/subscription/log/cron.log 2>&1' ## [message] Above is your schedule file converted to cron syntax; your crontab file was not updated. ## [message] Run `whenever --help' for more options.
あなたの回答
tips
プレビュー