RESTFul WebService中的异步请求

时间:2013-11-20 16:56:14

标签: web-services rest asynchronous

我需要创建一个基于REST的Web服务,其中请求将异步处理。 通过异步,我的意思是客户端将发出请求并继续执行而不等待服务的响应。是否可以实现此目的? 我需要在WebSphere Application Server中部署该服务。

2 个答案:

答案 0 :(得分:5)

所以我不确定你的问题是关于如何在服务器上进行异步处理,或者如何以RESTful方式处理异步操作。如果是后者,那么这里是建议的方法摘要:http://restcookbook.com/Resources/asynchroneous-operations/

将您的服务方法编码为

  • (a)异步处理请求的操作(使用单独的 线程最有可能)。
  • (b)立即返回202-Accepted
  • 的回复代码
  • (c)在响应正文中,返回表示所请求操作状态的URI。

然后将您的客户编码为:

  • (a)调用主服务方法。响应完成后,如果响应代码为202,请记下正文中返回的URI。
  • (b)在后台线程中,定期轮询该URI,直到它返回操作完成的指示。

答案 1 :(得分:1)

是的,你可以创建一个调用你的REST服务的线程。也许你可以在这里看到如何实现这个目标:

http://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html