delayed_job отправить письмо с неправильным отправителем на производстве

Я работаю на рельсах 3.1.3 и использую delayed_job 3.0.1

Я обнаружил, что что-то не так с электронной почтой с действительным отправителем.

Сначала я настраиваю ActionMailer на работу с Gmail (xxx.gmail.com), и он работает нормально.

После того, как я какое-то время развернусь на производственном сервере.

Я настроил новый ActionMailer для работы с моим почтовым сервером.

И протестировал на разработке. Затем я развертываю код на производственном сервере. Он тоже отлично работает.

НО иногда электронное письмо отправляется клиенту с использованием моего старого Gmail (xxx.gmail.com) в качестве отправителя. (Отправлено правильно, без ошибок)

PS. Я использую гем rails_config для сохранения настроек электронной почты.

Я попытался отладить это в течение 2 дней, и мне повезло.

  • напечатайте Settings.mail_sender внутри консоли rails на рабочем сервере много раз. он возвращается правильно ("нет ответа")
  • перезапустите delayed_job.
  • перезапустить сервер.
  • попробуй занести отправителя в лог. (он записывает в журнал, когда отправитель не Gmail).
  • проверьте мой проект там, где нет настроек Gmail или базы данных.

Вот мой код

# config/settings/production.yml
  mail_sender: '"no-reply" <[email protected]>'


# MyMailer.rb

default :from => Settings.mail_sender

def greeting(receiver)                   
  @receiver = receiver
  Delayed::Worker.logger.info "-------In inform client"
  Delayed::Worker.logger.info "========inform client from #{Settings.mail_sender}"

  mail(:to => "#{receiver.full_name} <#{receiver.email}>",
    :subject => "Hello") do |format|                   
      format.html
  end

  Delayed::Worker.logger.info inspect
end


# code I call the delayed_job
  MyMailer.delay.greeting(client) if client.can_receive_email?

Любая идея? Спасибо.


person Rafaiel    schedule 26.04.2012    source источник
comment
Разве тестовая служба не обнаружила, что письмо нужно отправить в производство, и, возможно, украла это событие / отправила почту?   -  person Joachim Isaksson    schedule 26.04.2012
comment
Извините. Я не очень хорошо владею английским языком. Что ты имеешь в виду? Вы можете объяснить это?   -  person Rafaiel    schedule 26.04.2012


Ответы (1)


Я уже развертываю свои приложения на новом сервере (использую те же данные), проблема исчезла.

Затем я пытаюсь на некоторое время выключить старый сервер, после чего снова запускаю старый.

Проблема тоже ушла. Это очень запутанно, похоже, что зомби-поток застрял на моем старом сервере.

Наконец, я обнаружил настоящую проблему: процесс delayed_job застрял на моем сервере из-за вопроса о дампе.

person Rafaiel    schedule 09.05.2012