Rails ActiveJob / Sidekiq发送电子邮件不一致;有时发送,有时不发送

时间:2016-05-10 01:35:32

标签: ruby-on-rails ruby ruby-on-rails-3 email devise

我有一个使用ActiveJob / ActionMailer的Rails 4.2应用程序和带有Devise的Sidekiq / Redis进行身份验证。我在注册时需要电子邮件确认,由Devise处理。我在用户注册时遇到问题,但确认电子邮件有时无法发送。

日志显示确认电子邮件已被ActiveJob排队,有时会被处理,有时则不会。如果没有处理确认电子邮件,并且用户再次请求确认电子邮件,则会收到新的确认电子邮件。

有关为何发生这种情况的任何想法?

此外,我没有迭代任何用户,我使用标准的Devise注册过程。 So this doesn't apply

1 个答案:

答案 0 :(得分:0)

我想我知道电子邮件不一致的原因。我有两个使用相同redis服务器实例的独立登台环境。为了便于解释,我将其称为staging1和staging2。

我相信发生的事情是当在staging2上创建用户(ID = 1)时,有时staging1会为自己的用户处理电子邮件(ID = 1),因此staging2的用户不会得到电子邮件,而是电子邮件从staging1发送给用户。

要解决此问题,可以执行以下两项操作之一。

  1. 为每个环境使用单独的redis服务器。
  2. 为每个环境使用redis名称空间。