Ruby on rails Rails应用程序因超时而崩溃

Ruby on rails Rails应用程序因超时而崩溃,ruby-on-rails,crash,timeout,Ruby On Rails,Crash,Timeout,我在rails应用程序中有一个方法,可以进行大约1000次REST调用。不幸的是,由于超时,它很快崩溃了: Error H12 (Request timeout) -> POST MyApp.herokuapp.com/expensiveCall dyno=web.1 queue= wait= service=30000ms status=503 如何避免此超时?我应该小心这些事情吗?(打这个电话的费用很高,所以我应该避免找一些事情) 谢谢 编辑 另外,启动一个线程,使这10

我在rails应用程序中有一个方法,可以进行大约1000次REST调用。不幸的是,由于超时,它很快崩溃了:

Error H12 (Request timeout) -> POST MyApp.herokuapp.com/expensiveCall dyno=web.1 queue= wait= service=30000ms status=503      
如何避免此超时?我应该小心这些事情吗?(打这个电话的费用很高,所以我应该避免找一些事情)

谢谢

编辑
另外,启动一个线程,使这1000个REST调用,而不是让请求等待完成,这是一个好主意。如果是这样的话,我该怎么做呢?

你需要把它放到某种背景工作中去。你可以用,或者。延迟作业是一种工具,您可以在rails中使用它来创建一个作业,该作业可以在其他时间执行,也可以放入队列。延迟工作在某些方面与活跃记录有相当相似的干扰。查看链接上的自述文件以进行设置。我听说过resque的优点,它也允许您这样做,但我没有使用它的经验。

谢谢!我突然想到,这些电话可能是平行的。设置延迟的并行rest请求是否有益?另外,如果我想以后扩展,并在各种虚拟机实例上执行我的“expensiveCall”,您会建议使用reque之类的工具吗?谢谢另外-进行多个异步“expensiveJob”调用(延迟的_作业)与将这些调用添加到队列处理程序(如resque)之间有什么区别?或者总体效果是否相同?老实说,如果需要将作业传递到另一台机器,我不确定涉及到什么。我对延迟_作业的经验是基本上触发队列中的作业,这基本上填充了您生成的数据库表,然后我启动一个工作进程来提取它们。这个辅助进程将一直运行,直到我告诉它其他情况,所以它总是可以选择另一个作业。