【问题标题】: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))。从您运行工作人员的服务器上,您无法使用给定的凭据连接到数据库。

      【讨论】:

        最近更新 更多