Rails应用程序使用I18n。用户将使用英语网站,该网站将以西班牙语随机加载。
应用程序仅在两个地方切换区域设置。
以下是邮件通知的邮件程序方法:
class Notifier < ActionMailer::Base
def message_notification(message_id, recipient_id)
@message = Message.find(message_id)
@recipient = @user = User.find(recipient_id)
I18n.with_locale(@recipient.locale) do
mail(
to: @recipient.email,
subject: I18n.t('app.new_message.subject',
name: @message.sender.name),
from: I18n.t('app.notifier.from')
) do |format|
format.html { render layout: 'notifier-single' }
end
end
end
end
该应用程序使用Sidekiq与Redis处理延迟的作业。所以,上面的方法是这样推迟的:
Notifier.delay.message_notification(self.id, recipient.id)
我想知道Sidekiq处理线程的方式是否会导致这种情况。
有什么想法吗?
更新
来自Sidekiq维基的这个页面: https://github.com/mperham/sidekiq/wiki/Problems-and-Troubleshooting
&#34; aws-sdk(根据讨论组中的一个老帖子,这个gem是线程安全的,除了使用自动加载。这里有更多细节。在初始化期间明确调用AWS.eager_autoload!允许它与Sidekiq)一起使用&#34;
该应用程序使用Amazon SES通过aws-sdk gem发送邮件。
我将AWS.eager_autoload!
添加到初始化程序中。我会观察并查看问题是否仍然存在(我还没有找到复制或测试方法)。这就是说我不确定这是否相关所以任何建议都会受到赞赏。