zod*_*d90 7 java multithreading web-services servlets jax-rs
我需要在调用RESTful Web服务端点时执行异步任务.实际上,要求端点通过POST操作执行一系列工作.它应该立即向调用者返回200 OK,生成一个线程并执行它的资源密集型任务.完成后,线程将POST到调用者(另一个REST服务器)上的相应端点,指示成功(传递表示初始事务请求的令牌).
在我应该注意的servlet中执行异步操作的最佳实践方法是什么?
Boz*_*zho 8
Servlet 3.0支持异步操作.Tomcat 7.0已经稳定,因此您可以获得它并尝试新功能.
如果您不需要连续输出数据,而只需启动后台进程,那么您可以使用任何可用的异步机制:
new Thread(new Runnable())
@Async
Mat*_*ard 5
除了 Java 中异步编码的复杂性之外,RESTful Web 服务中的另一个“最佳实践”是使用 HTTP 状态代码尽可能准确地描述服务器的响应。除非您有令人信服的理由坚持使用 200(即您无法更改的客户端期望这一点),否则您应该返回HTTP 202:
202 接受 请求已被接受进行处理,但处理尚未完成。
202 接受
请求已被接受进行处理,但处理尚未完成。
归档时间:
14 年,6 月 前
查看次数:
4585 次
最近记录:
12 年,4 月 前