2015-07-06 4 views
2

У меня есть задача рейка, которая должна отправлять почту каждый день пользователям, у которых есть свое ежедневное поле == 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-- 

Так послал письма в двух единственных пользователей, которые имели ежедневно == правда, поэтому мой метод работает. Но работает ли запланированная работа?

ответ

0

Изменение UserMailer в

def daily_mail(user) 
    @user = user 
    mail_to :user.email, subject: "Mail journalier" 
end 
+0

Я использую почту: для активации учетной записи, и это работает – Komarzer

Смежные вопросы