【问题标题】:Rails ActiveJob/Sidekiq sending emails inconsistently; sometimes sends, sometimes doesn'tRails ActiveJob/Sidekiq 发送电子邮件不一致;有时发送有时不发送
【发布时间】:2016-09-04 19:20:46
【问题描述】:
我有一个 Rails 4.2 应用程序,它使用 ActiveJob/ActionMailer 和 Sidekiq/Redis 和 Devise 进行身份验证。我在注册时需要电子邮件确认,这由 Devise 处理。我在用户注册时遇到问题,但有时不会发送确认电子邮件。
日志显示确认电子邮件已被 ActiveJob 排队,有时它会被处理,有时它不会。当确认邮件未被处理,而用户再次请求时,新的确认邮件将通过。
关于为什么会发生这种情况的任何想法?
另外,我没有迭代任何用户,我使用的是标准的 Devise 注册流程。 So this doesn't apply.
【问题讨论】:
标签:
ruby-on-rails
ruby
ruby-on-rails-3
email
devise
【解决方案1】:
我想我知道电子邮件不一致的原因。我有两个使用同一个 redis 服务器实例的独立登台环境。为了便于解释,我将它们称为 staging1 和 staging2。
我相信发生的情况是,当在 staging2 上创建用户 (ID=1) 时,有时 staging1 会为自己的用户 (ID=1) 处理电子邮件,因此来自 staging2 的用户不会收到电子邮件,而是电子邮件从 staging1 发送给用户。
要解决此问题,可以做以下两件事之一。
- 为每个环境使用单独的 redis 服务器。
- 为每个环境使用 redis 命名空间。