【发布时间】:2023-08-14 17:46:01
【问题描述】:
我们在 Heroku 上为我们的 Ruby on Rails 应用程序提供了背景(resque)工作。
当 Heroku 像昨天一样弹开盒子时,我们的后台工作就丢失了。
我们的后台作业运行大约 2 到 6 个小时。
有没有办法让它们保持运行或在失败后自动重新启动它们?
【问题讨论】:
标签: ruby-on-rails heroku resque restart
我们在 Heroku 上为我们的 Ruby on Rails 应用程序提供了背景(resque)工作。
当 Heroku 像昨天一样弹开盒子时,我们的后台工作就丢失了。
我们的后台作业运行大约 2 到 6 个小时。
有没有办法让它们保持运行或在失败后自动重新启动它们?
【问题讨论】:
标签: ruby-on-rails heroku resque restart
简而言之,不,没有简单的方法(如果简单的意思是对应用开发者透明)。
处理此类中断的最佳方法是在收到来自测功机歧管的SIGTERM signal 时正确保存作业状态。您的工作人员 dyno 将在不同的物理位置进行重组,在那里它可以恢复处理中断的工作。
虽然这涉及到额外的开发工作,但结果是一个更健壮和有弹性的应用程序(无论底层平台是什么)。
【讨论】: