我使用Apache commons HTTP客户端API从Java代码中使用REST Web服务。如果在连接管理器参数中配置的套接字超时值内没有返回响应,则发生套接字超时异常。在这种情况下,线程将异常返回给调用者类,即使REST服务在几秒后返回响应,也会丢失。
是否有可能创建一个新的线程,即使在超时后仍然会监听服务,只记录响应,而主线程将异常返回给调用者类?
有没有更好的方法来实现这一目标?
感谢。
答案 0 :(得分:0)
您最有可能寻找的模式涉及异步请求。对于您发布的每个操作,您都会创建一个唯一的“作业”ID,并使用该作业状态的特定URL。启动作业后,您可以查询该特定作业实例的状态。例如:
202 Accepted
&在 / actions / results / 1234 Location
标题
当然,如果没有完成工作,你不必返回404,还有其他检查状态的策略 - 关键是它是后续的电话。