rda*_*sxy 6 ruby-on-rails heroku
我在Heroku上有一个Rails控制器,我在其中循环发送电子邮件,并向用户回复有关电子邮件发送到哪个电子邮件地址的一些信息.
虽然只需要发送少量(~40个)电子邮件时这种情况有效,但是当更多的电子邮件发送出来时(例如> 40),请求会超时.
Heroku在他们的指南中指出,请求必须在30秒内至少响应一个字节:https://devcenter.heroku.com/articles/request-timeout
虽然我知道这不是实现这一目标的最佳方法,但我目前正试图弄清楚如何在Ruby中实现这一点.
如果这是一个PHP应用程序,我可以echo在进入循环之前做一个,然后echo在每次迭代中保持一些东西.如何在rails中实现类似的功能?
最好的办法是在发回回复之前不要发送邮件。首先将作业添加到 Heroku 的许多可用工作队列之一,然后进入一个监控页面,该页面显示作业进度并定期自我更新,您的运气会更好。如果您出于预算原因试图避免使用其中一种队列服务,则可以使用新线程而不是队列来完成相同的操作。无论哪种方式,该技术都将具有更好的扩展性,并且能够更轻松地从故障中恢复。
由于您似乎已经知道您提出的解决方案不是理想的解决方案,因此我也会尝试回答您的确切问题。您也许可以使用 HTTP 流来实现此目的。我建议查看http://railscasts.com/episodes/266-http-streaming。
| 归档时间: |
|
| 查看次数: |
3892 次 |
| 最近记录: |