Osc*_*eza 7 heroku rails-activejob ruby-on-rails-5
Rails 应用程序使用外部服务处理和激活许可证,外部服务有时会将 Rails 请求的处理延迟超过 30 秒,然后将错误返回到前端(我正在运行 Heroku,因此最大值为 30 秒)。
我尝试使用 ActiveJobs 和默认的 Rails 异步适配器 (Rails 5),我可以看到它在 Heroku 中开箱即用。我一直读到我应该使用另一个 Web 进程,例如 Redis,但是如果后台作业应该在请求完成后立即执行,并且如果只是访问外部的另一个 API(可能会更慢),那么使用起来是否那么糟糕默认异步?
我可以看到这是进程内线程中的句柄,但我看不出如此小的作业有另一个 Web 进程的原因。
我在生产中使用异步适配器来发送电子邮件。这是一项非常小的工作。发送电子邮件最多可能需要 3 秒。
该文档表示它不适合生产,因为它会在重新启动时删除待处理的作业。如果我没记错的话,Heroku 每天重新启动一次 dynos。
如果您的作业在重新启动期间处于待处理状态,则该作业将会丢失。就我而言,重启期间待处理的电子邮件非常少。到目前为止,一切都很好。
但如果您的作业需要 30 秒,我将使用 Resque 或 DelayedJob。
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |