У меня есть задача рейка, которая должна отправлять почту каждый день пользователям, у которых есть свое ежедневное поле == true. (У меня уже есть реализация почты в моем проекте, который работает, он отправляет почту при создании учетной записи и для сброса пароля). Я использую Whenever gemRails проверяет запланированную задачу рейка почты
Дело в том, что, поскольку я не в производстве, я не знаю, как я могу проверить, работает ли он.
Вот мой UserMailer:
def daily_mail(user)
@user = user
mail to: user.email, subject: "Mail journalier"
end
Моя рейка задача:
убывание "Отправить электронную почту для пользователей"
task :email_sender => :environment do |_, args|
User.find_each do |user|
UserMailer.daily_mail(user).deliver if user.daily == true
end
end
И мой schedule.rb:
every :day, :at => '12pm' do # Use any day of the week or :weekend, :weekday
rake "email_sender"
end
Я сделал это после просмотра ИНГ учебники:
whenever --update-crontab store (and tried with --set too)
Я попытался сделать кронтаб -l и я получаю это:
# Begin Whenever generated tasks for: store
0 12 * * * /bin/bash -l -c 'cd /Users/Marco/Documents/TBProject && RAILS_ENV=production bundle exec rake email_sender --silent'
# End Whenever generated tasks for: store
# Begin Whenever generated tasks for: /Users/Marco/Documents/TBProject/config/schedule.rb
0 12 * * * /bin/bash -l -c 'cd /Users/Marco/Documents/TBProject && RAILS_ENV=production bundle exec rake email_sender --silent'
# End Whenever generated tasks for: /Users/Marco/Documents/TBProject/config/schedule.rb
Является ли их способ проверить (или знать), если моя задача будет работать на производстве?
UPDATE:
Я попытался запустить «грабли email_sender», и я получил это в development.log:
[1m[36mUser Load (0.9ms)[0m [1mSELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1000[0m
DEPRECATION WARNING: `#deliver` is deprecated and will be removed in Rails 5. Use `#deliver_now` to deliver immediately or `#deliver_later` to deliver through Active Job. (called from block (2 levels) in <top (required)> at /Users/Marco/Documents/TBProject/lib/tasks/rake1.rake:5)
Rendered user_mailer/daily_mail.html.erb within layouts/mailer (1.2ms)
Rendered user_mailer/daily_mail.text.erb within layouts/mailer (0.2ms)
UserMailer#daily_mail: processed outbound mail in 189.6ms
Sent mail to [email protected] (8.6ms)
Date: Mon, 06 Jul 2015 19:24:29 +0200
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Mail journalier
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_559ab9cd64da_193e3fc21dc6020412690";
charset=UTF-8
Content-Transfer-Encoding: 7bit
----==_mimepart_559ab9cd64da_193e3fc21dc6020412690
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Daily Mail
----==_mimepart_559ab9cd64da_193e3fc21dc6020412690
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
<html>
<body>
<h1>Daily Mail</h1>
</body>
</html>
----==_mimepart_559ab9cd64da_193e3fc21dc6020412690--
DEPRECATION WARNING: `#deliver` is deprecated and will be removed in Rails 5. Use `#deliver_now` to deliver immediately or `#deliver_later` to deliver through Active Job. (called from block (2 levels) in <top (required)> at /Users/Marco/Documents/TBProject/lib/tasks/rake1.rake:5)
Rendered user_mailer/daily_mail.html.erb within layouts/mailer (0.0ms)
Rendered user_mailer/daily_mail.text.erb within layouts/mailer (0.0ms)
UserMailer#daily_mail: processed outbound mail in 15.2ms
Sent mail to [email protected] (2.7ms)
Date: Mon, 06 Jul 2015 19:24:29 +0200
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Mail journalier
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_559ab9cdc753_193e3fc21dc60204128e8";
charset=UTF-8
Content-Transfer-Encoding: 7bit
----==_mimepart_559ab9cdc753_193e3fc21dc60204128e8
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Daily Mail
----==_mimepart_559ab9cdc753_193e3fc21dc60204128e8
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
<html>
<body>
<h1>Daily Mail</h1>
</body>
</html>
----==_mimepart_559ab9cdc753_193e3fc21dc60204128e8--
Так послал письма в двух единственных пользователей, которые имели ежедневно == правда, поэтому мой метод работает. Но работает ли запланированная работа?
Я использую почту: для активации учетной записи, и это работает – Komarzer