gpt4 book ai didi

ruby-on-rails - 在 AWS 上使用 deliver_later 的 Rails Action Mailer

转载 作者:行者123 更新时间:2023-12-04 06:05:03 35 4
gpt4 key购买 nike

我的生产应用程序在 AWS 上运行,但在某些邮件程序上的事件作业 - deliver_later 有问题。我在开发中成功发送了所有带有 deliver_later 的电子邮件,但在生产中有些不同。某些邮件程序使用 deliver_later 但不是我的欢迎邮件程序(欢迎新用户)。所以我必须在这个欢迎邮件程序上设置 deliver_now 让它实际发送电子邮件。

//doesn't work, email is not sent
UserMailer.welcome_email(self).deliver_later
//works
UserMailer.welcome_email(self).deliver_now

当我使用 deliver_later 时,服务器的日志文件仅显示此内容:

[ActiveJob] Enqueued ActionMailer::DeliveryJob (Job ID: d7114-464e-4a90-9721-126650) to Async(mailers) with arguments: "UserMailer", "welcome_email", "deliver_now", #>

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

deliver_now 一次发送一封电子邮件。

如果你使用deliver_later,你必须使用像Sidekiq这样的ActiveJob runner,你可以看到这个gist Sending emails with ActionMailer and Sidekiq另见基本 Sidekiq已发送电子邮件。

排队要通过事件作业传送的电子邮件。当作业运行时,它将使用 deliver_now 发送电子邮件。

UserMailer.welcome_email(self).deliver_later(wait: 1.hour)

method-i-deliver_later

基本上,deliver_later 是异步的。当您使用此方法时,此时不会发送电子邮件,而是将其插入作业队列。如果作业未运行,则不会发送电子邮件。 deliver_now 将立即发送电子邮件,无论作业的状态如何。 Here您可以查看交付方式的文档。

关于ruby-on-rails - 在 AWS 上使用 deliver_later 的 Rails Action Mailer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49504268/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com