【问题标题】:What is best practice to implement a HTTP POST to cope with server timout?实施 HTTP POST 以应对服务器超时的最佳实践是什么?
【发布时间】:2014-09-15 09:17:42
【问题描述】:

我正在编写一个 REST 服务,其中 REST POST 的结果可能需要比 HTTP 连接的环境超时设置更长的时间。鉴于我无法更改 REST 目标网址的超时时间, 我该怎么做才能使 REST 调用正确通过?我考虑过使用异步控制器,但这似乎无法解决任何超时行为。

调用客户端不必处理任何服务器错误或尝试重新执行查询,因为这只会给服务器增加更多压力。

干杯, 启

【问题讨论】:

    标签: spring http post timeout


    【解决方案1】:

    假设这是一个连接读取超时而不是 http keepalive 超时,因为只有一个查询。一个建议是让休息服务每隔指定的时间间隔返回间歇性状态响应。如果这是一个 tcp keepalive 问题,那么可以使用配置来规避它。如果设置了套接字读取超时,那么也可以增加 thst。

    【讨论】:

    • 我想过类似的事情,将位置发送到临时 url,然后 202 直到后端过程完成。但是通常的休息客户会处理吗? jquery.ajax 是否会等待并重复,直到 RC 200 提供完毕?
    • 而不是202,后端进程是否可以定期返回一个预定义的字符串以被客户端忽略,直到可以返回响应? TCP KeepAlive 怎么样,你知道连接读取超时的原因吗 - 也许是 HTTP keepalive 设置或 TCP keepalive?
    • TCP keepalive 级别太低,我们这里实现的是 REST 服务,在 Spring 控制器之前我们无法访问任何东西。此外,客户端和服务器之间的负载均衡器/代理和其他元素也可能会忽略这一点。
    • 他们为什么会忽略这一点?
    猜你喜欢
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 2013-08-24
    相关资源
    最近更新 更多