我的 rails 应用程序中有一个方法可以进行大约 1000 次 REST 调用。不幸的是,由于超时,它很快就崩溃了:
Error H12 (Request timeout) -> POST MyApp.herokuapp.com/expensiveCall dyno=web.1 queue= wait= service=30000ms status=503
如何避免此超时?我应该小心这些方面的任何事情吗? (打这个电话是相当昂贵的 - 所以寻找我应该避免的事情)。
谢谢!
编辑
此外,启动一个线程来进行这 1000 个 REST 调用而不是让请求等待完成是否是一个好主意。如果是这样,我该怎么做?
请您参考如下方法:
您将需要将其放入某种后台作业中。您可以使用 delayed_job 之类的内容, 或 resque .延迟作业是一种工具,您可以在 Rails 中使用它来创建可以在其他时间执行或放入队列的作业。延迟作业在某些方面与事件记录具有相当相似的接口(interface)。查看链接上的自述文件以进行设置。我听说过 resque 的好消息,它也可以让你这样做,但我没有使用它的经验。


