在node.js中处理任意长的请求

时间:2015-12-17 22:43:49

标签: node.js nginx timeout

我有一个端点,它将分析在两个日期之间提交到我的网页的所有项目,然后下载包含结果的CSV文件。现在我有一个快速端点,允许用户选择日期,然后提交给服务器,然后需要做一些工作,最终将使用csv模块触发csv文件的下载。

如果用户选择合理的窄范围日期,则此方法有效,但随着范围的增加,该过程可能需要比nginx超时时间更长的时间。我可以简单地增加超时时间,但在某些时候这会崩溃。我怎么能重新设计这个以防止陷入可能的超时?

1 个答案:

答案 0 :(得分:1)

如果您正在执行请求超时,那么您最好的选择可能是某种“票证”系统,其中服务器立即响应某种可以在以后使用的令牌(“票证”)。检查提交作业的状态。

从那里你可以生成一个返回当前状态的链接(以及可选的其他下载链接),或者如果你想获得想象,你可以使用类似socket.io的东西来允许自动通知客户端作业完成后(并显示下载链接)。