gpt4 book ai didi

ruby-on-rails - 错误 : too many emails per second on Heroku

转载 作者:行者123 更新时间:2023-12-01 13:42:01 26 4
gpt4 key购买 nike

我在 Heroku 上安装了 Rails 4 应用程序,通过 deliver_later 发送电子邮件。 Sidekiq 正在运行和工作,我的配置中有 config.active_job.queue_adapter = :sidekiq

我还在日志 [ActiveJob] [ActionMailer::DeliveryJob] 中看到了这一点,这让我相信电子邮件是作为后台作业发送的。

那么,为什么我仍然会收到有关每秒电子邮件过多的错误消息?

Net::SMTPUnknownError: could not get 3xx (550: 550 5.7.0 Requested action not taken: too many emails per second

我刚刚注意到我将 sidekiq 并发设置为 3。也许这就是问题所在?

最佳答案

这不会与 Sidekiq 相关(嗯,无论如何不会直接相关)。这与您使用的任何 SMTP 服务器和服务器的速率限制有关。如果您有多个 Sidekiq 实例几乎同时发送电子邮件,并且您的速率限制相对较低,则可能会抛出此错误。

例如,如果您在开发或临时环境中使用 Mailtrap 作为 SMTP 服务器,则免费帐户每秒限制为 2 封电子邮件。很容易遇到这个错误。

如果出于您的目的您无法避免遇到此问题,您可以通过使用 ActionMailer 的 deliver_later method 关键字参数“等待”来尝试一些不同的策略。 ,例如:

users_i_need_to_email.each_with_index do |user, index|
t = 5 * index
UserMailer.send_important_stuff(user)
.deliver_later(wait: t.seconds)
end

如果您的 :deliver_later 调用在不同的进程或流中运行,您可以通过随机化传递时间(例如,随机时间长达 5 分钟)来摆脱困境。

显然,上述两种解决方案都不是充分的证据,因此您最好使用适合您的目的的 SMTP 服务器。

关于ruby-on-rails - 错误 : too many emails per second on Heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39237921/

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