在我们的应用程序中,我们使用rake任务向大约11 000个用户发送邮件。每封电子邮件发送都作为延迟作业执行,如下所示。
@Users.each do |a|
a.delay.send_email(body,text)
end
两周前工作完美,突然放慢了速度。意味着它即将在一天内发送所有电子邮件,但目前需要时间。
我们已尝试遵循此性能问题但到目前为止找不到任何内容。 我们调查了代码,尝试了单个延迟工作。注释掉了db等部分。但是它在同一时间完成 2.尝试将电子邮件发送部分注释掉。但是执行延迟工作所花费的时间也是一样的。
后来注意到了heroku worker process dyno。我们目前已经购买了1个工人和2个网站。这是它被推迟的原因。如果是这样,它以前是如何工作的?增加更多工人会提高绩效吗?