#ruby-on-rails #delayed-job
#ruby-on-rails #отложенное задание
Вопрос:
Я внедрил отложенное задание, и оно обрабатывается нормально, но оно генерирует письма в development.log, а не в production.log.
Также почта фактически не отправляется, она просто генерируется в журнале разработки. После обработки у меня также нет задания в таблице отложенных заданий.
Я также использовал RAILS_ENV=production rake jobs:work
, но почта по-прежнему находится в журнале разработки и фактически не отправляется; я использую почтовый сервер в Ubuntu для отправки писем.
Я заметил, что rake jobs:work
по умолчанию используется журнал разработки, не знаю, то же самое и для производственного сервера?
Если кто-нибудь знает о проблеме, пожалуйста, ответьте как можно скорее, потому что из-за этого мое приложение застряло на рабочем сервере, и множество писем просто попадает в журнал разработки, а на самом деле не отправляется конечному пользователю.
Комментарии:
1. Добавьте
Delayed::Worker.destroy_failed_jobs = false
в файлconfig/initializers/delayed_job.rb
и перезапустите приложение / сервер. Настройка, которая не будет удалять любые задания, в которых содержится ошибка, что может помочь сузить круг проблем. Чтобы найти задания с ошибками:select id,last_error from delayed_jobs where last_error is not null;
. Вам не следует использоватьrake jobs:work
в рабочей среде. Лучше всего создать для этого файл monit.2. я использую RAILS_ENV= производственные задания rake: work, но после этого письма появляются только в журнале разработки, но на самом деле они не были отправлены получателю
Ответ №1:
Это может быть очевидно, но в вашем config / production.rb вы установили
config.action_mailer.delivery_method = :smtp
Возможно, вы установили метод доставки в config/development.rb, но забыли сделать то же самое в производственной среде. Пожалуйста, дайте мне знать, чтобы я мог помочь дальше!