ActiveRecord::RecordNotFound: Couldn't find User with id=42606 [WHERE ("users".deleted_at IS NULL)]
devise_async.rb:
Devise::Async.backend = :sidekiq
Devise::Async.queue = :mailer
sidekiq.rb:
if Rails.env.production?
Sidekiq.configure_server do |config|
config.redis = { url: 'redis://production-redis.xxxxxx.0001.usw2.cache.amazonaws.com', :namespace => 'sidekiq_prod' }
end
Sidekiq.configure_client do |config|
config.redis = { url: 'redis://production-redis.xxxxxx.0001.usw2.cache.amazonaws.com', :namespace => 'sidekiq_prod' }
end
我还有其他工作人员将内容发送到有效的segment.io,但设计人员并未发送我的欢迎电子邮件或密码重置电子邮件,因为它无法找到用户。我认为它连接到错误的数据库,但我不确定。
我很感激任何指示我为什么找不到我的用户的正确方向。
答案 0 :(得分:1)
我好几个月以来一直在努力解决这个零星的问题。实际上我已经将这个用于resque。
我的幸运猜测是:当用户注册并且刚刚保存用户模型时,工作会被触发。但Sidekiq作业已经尝试加载应该在数据库中的用户,但可能是user.save
发生的db-transaction,似乎还没有提交。
因此,当我尝试重现此问题时,会有一个具有给定ID的用户,也许这就是为什么您没有在deleted_at
中设置任何时间戳。
我会尝试以5-10秒的轻微延迟运行欢迎邮件,并检查是否仍然会发生这种情况。
亲切的问候