【问题标题】:Error while queueing an email with Sidekiq使用 Sidekiq 对电子邮件进行排队时出错
【发布时间】:2026-02-16 09:40:01
【问题描述】:
当使用 deliver_later 以 sidekiq 作为队列发送电子邮件时。我收到此错误:
ActiveJob::DeserializationError: 尝试反序列化时出错
参数:fe_sendauth:未提供密码
在控制台中使用 deliver_now 可以毫无问题地发送完全相同的电子邮件。
有什么想法吗?
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-4
sidekiq
rails-activejob
【解决方案1】:
需要 RACK_ENV 环境变量(RAILS_ENV 除外)。
所以,对于生产:
export RACK_ENV=production
【解决方案2】:
fe_sendauth: no password supplied 是来自 postgresql 的身份验证错误。当您将接收作为参数的模型的作业排入队列时,它将使用 globalid 序列化对象(类似于“gid://app/Person/1”),当它尝试运行作业时,它将反序列化作业(基本上做Person.find(1))。从您运行工作人员的服务器上,您无法使用给定的凭据连接到数据库。