如何使用 whenever gem 自动发送邮件
How to send mails automatically using whenever gem
我曾经 gem 每天发送邮件,但它不是 sending.I 我正在使用 amazon linux ec2
实例。请看一次我的代码。
schedule.rb:
every 5.minutes do
runner "Listings.today_expired_spaces"
end
Listings.rb:(模型文件)
def today_expired_spaces
@list=List.find_by_date(Date.today)
UserMailer.today_expired_list(@list).deliver
end
生产中:
在 运行 这些命令之后,我得到这样的响应
1.whenever -w
[write] crontab file written
2.whenever -i [write] crontab file updated
3.whenever
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/bash -l -c 'cd
/home/ubuntu/my_server && bundle exec script/rails runner -e
production '\''Spaces.today_expired_spaces'\'''
[message] Above is your schedule file converted to cron syntax; your crontab file was not updated.
[message] Run `whenever --help' for more options.
请提供解决方案。
您应该在 lib/tasks
文件夹中创建一个 rake task
并将任务包含在 config/schedule.rb
中的任何计划文件中
in lib/tasks/send_mail_bang_bang.rake
(文件名仅供参考)
require 'rake'
namespace :task_namespace do
desc 'task description'
task :send_mail => :environment do
# call Listing method to send mail
Listings.today_expired_spaces
end
end
在config/schedule.rb
every 5.minutes do
rake 'task_namespace:send_mail'
end
您可以在 "custom-rake-tasks" 部分
中阅读有关 rake 任务 here 的更多信息
希望对您有所帮助
我曾经 gem 每天发送邮件,但它不是 sending.I 我正在使用 amazon linux ec2
实例。请看一次我的代码。
schedule.rb:
every 5.minutes do
runner "Listings.today_expired_spaces"
end
Listings.rb:(模型文件)
def today_expired_spaces
@list=List.find_by_date(Date.today)
UserMailer.today_expired_list(@list).deliver
end
生产中:
在 运行 这些命令之后,我得到这样的响应
1.whenever -w
[write] crontab file written
2.whenever -i [write] crontab file updated
3.whenever
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/bash -l -c 'cd /home/ubuntu/my_server && bundle exec script/rails runner -e production '\''Spaces.today_expired_spaces'\'''
[message] Above is your schedule file converted to cron syntax; your crontab file was not updated.
[message] Run `whenever --help' for more options.
请提供解决方案。
您应该在 lib/tasks
文件夹中创建一个 rake task
并将任务包含在 config/schedule.rb
in lib/tasks/send_mail_bang_bang.rake
(文件名仅供参考)
require 'rake'
namespace :task_namespace do
desc 'task description'
task :send_mail => :environment do
# call Listing method to send mail
Listings.today_expired_spaces
end
end
在config/schedule.rb
every 5.minutes do
rake 'task_namespace:send_mail'
end
您可以在 "custom-rake-tasks" 部分
中阅读有关 rake 任务 here 的更多信息希望对您有所帮助