#ruby-on-rails #ruby-on-rails-3 #amazon-ec2 #ruby-on-rails-3.2
#ruby-on-rails #ruby-on-rails-3 #amazon-ec2 #ruby-on-rails-3.2
Вопрос:
Я использовал whenever gem для отправки писем каждый день, но он не отправляет.Я использую amazon linux ec2
экземпляр. Пожалуйста, взгляните на мой код один раз.
schedule.rb:
every 5.minutes do
runner "Listings.today_expired_spaces"
end
Listings.rb:(model-file)
def today_expired_spaces
@list=List.find_by_date(Date.today)
UserMailer.today_expired_list(@list).deliver
end
В производстве:
После выполнения этих команд я получаю ответы, подобные этому
1.whenever -w
[запись] записанный файл crontab
2. всякий раз, когда я [пишу] файл crontab обновляется
3. всякий раз, когда
0,5,10,15,20,25,30,35,40,45,50,55 * * * * / bin/bash -l -c ‘cd /home/ubuntu/my_server amp;amp; bundle exec script /rails runner -e production ‘»Пробелы.today_expired_spaces'»‘
[сообщение] Выше приведен ваш файл расписания, преобразованный в синтаксис cron; ваш файл crontab не обновлялся.
[сообщение] Запустите `whenever —help’ для получения дополнительных опций.
Пожалуйста, предоставьте решение для этого.
Ответ №1:
вы должны создать папку rake task
в lib/tasks
и включить задачу в файл расписания whenver в config/schedule.rb
в 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
вы можете прочитать больше о задаче рейка здесь в части «пользовательские задачи рейка»
надеюсь, это поможет
Комментарии:
1. Я думаю, что это должно работать с большинством серверов, это просто задание cron задача rake с использованием whenever gem, при условии, что ваш сервер работает на linux / ubuntu и поддерживает RoR ofc