ActiveJob deliver_later 未发送

ActiveJob deliver_later not sending

我有以下方法:

UserMailer.comment_alert(@comment, user, type).deliver_later

在 rails 日志中奇怪地出现了参数 deliver_now

[ActiveJob] Enqueued ActionMailer::DeliveryJob (Job ID: 5bdf9ed1-53d5-42aa-acb2-7ce54ab284e1) to Sidekiq(mailers) with arguments: "UserMailer", "comment_alert", "deliver_now", gid://xxx/Comment/153, gid://xxx/User/26, "Comment"

作业从未处理过,我在 Sidekiq 日志中看不到任何内容。也没有邮件投递,永远。我尝试重新启动 sidekiq、rails 和 redis,甚至清除 redis 数据库。有趣的是更改为 .deliver_now 有效,但这似乎并没有触及 sidekiq 或创建 Enqueued ActionMailer::DeliveryJob

在我的 application.rb:

config.active_job.queue_adapter = :sidekiq

我正在使用 rails 4.2.6activejob 4.2.6

邮件在队列邮件中排队。记得启动 sidekiq 处理那个队列:

bundle exec sidekiq -q default -q mailers

或添加config/sidekiq.yml内容如下

  :verbose: true
  :concurrency: 25
  :queues:
    - [mailers, 7]
    - [default, 5]

和运行bundle exec sidekiq -C config/sidekiq.yml

如果您正在使用 sidekiq,请稍后不要使用 deliver,因为该作业永远不会执行,而是使用 perform_in(<>) 并在

中调用带有 deliver_now 的工作人员