【问题标题】:Express request processing timeout?快速请求处理超时?
【发布时间】:2016-02-06 22:59:04
【问题描述】:

我有一个小型 API,可根据请求运行子进程并以最终输出进行响应。处理可能需要 5-10-30 分钟,没关系。但是 Express 在一段时间后断开连接并记录 POST /api/v1/check - - ms - - 并且即使子进程的输出仍在处理中,它也永远不会返回给客户端。

使用 jQuery 发出请求。

我怎样才能使它正常工作?

谢谢。

【问题讨论】:

    标签: jquery ajax node.js http express


    【解决方案1】:

    可能是浏览器导致连接超时。使用 jQuery 发出 ajax 请求时,您可以在客户端设置超时值。

    here 中描述的 jQuery timeout 参数可以设置为您选择的时间。

    还有一些方法可以让服务器运回一小部分虚拟响应(在实际响应之前)以使浏览器不会超时连接,但在这种情况下,如果您控制客户端,则更容易只需更改其超时值即可。

    服务器端,您可以通过在服务器上设置超时值来控制传入连接何时超时。这在http 模块的文档中描述了here

    【讨论】:

    • 谢谢,您的回答对我也有帮助。
    • 这似乎不适用于我的特殊情况,但无论如何谢谢,非常有用!
    • @fivepointseven - 为什么它对你不起作用?如果您适当地设置客户端和服务器超时,您应该能够控制它。
    • @jfriend00 是对的,但由于某种原因,express 仍会在几分钟内记录 - - ms - - 并处理响应但从未发送给客户端。无论如何,我已经改变了整个事情的结构,现在它开始用一个请求启动工作程序,并每隔几秒钟用另一个请求检查结果(现在存储在文件中)。我可能应该实现类似 socket.io 的东西来实现持久的连接......
    猜你喜欢
    • 2012-12-14
    • 1970-01-01
    • 2017-09-03
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多