2016-05-10 3 views
0

У меня есть приложение Rails 4.2 с помощью ActiveJob/ActionMailer и Sidekiq/Redis с Devise для аутентификации. При регистрации я запрашиваю подтверждение по электронной почте, которое обрабатывает Devise. У меня возникает проблема, когда пользователи регистрируются, но письмо с подтверждением иногда не отправляется.Rails ActiveJob/Sidekiq отправляет электронные письма непоследовательно; иногда посылает, иногда не

Журналы показывают, что письмо с подтверждением завершено ActiveJob, и иногда оно обрабатывается, иногда это не так. Когда письмо с подтверждением не обрабатывается, и пользователь снова запрашивает его, появляется новое электронное письмо с подтверждением.

Любые идеи относительно того, почему это происходит?

Кроме того, я не перебираю пользователей, я использую стандартный процесс регистрации Devise. So this doesn't apply.

ответ

0

Я думаю, что я знаю причину непоследовательных писем. У меня было две отдельные среды промежуточного уровня с использованием того же экземпляра redis-сервера. Ради объяснений я буду называть их staging1 и staging2.

Я считаю, что случалось, что когда пользователь (ID = 1) создавался на этапе2, иногда staging1 обрабатывал электронное письмо для своего пользователя (ID = 1), и поэтому пользователь из этапа2 не мог получить электронное письмо, а письмо отправлено пользователю из staging1.

Для решения этой проблемы можно сделать одну из двух вещей.

  1. Используйте отдельный сервер redis для каждой среды.
  2. Используйте пространства имен redis для каждой среды.
Смежные вопросы