首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个长时间运行的请求是java异步servlet的有效用例吗?

这个长时间运行的请求是java异步servlet的有效用例吗?
EN

Stack Overflow用户
提问于 2014-04-11 07:19:14
回答 1查看 183关注 0票数 0

我一直在阅读有关异步servlet的文章,试图看看它是否适合我的用例。

服务器将收到长时间运行的请求,这些请求需要时间从db读取,并处理每条消息。

以下是基本流程:

  1. 客户端请求验证某些数据。
  2. 服务器接收长时间运行的进程(~1-2分钟) 的请求。
    1. 请求需要与db (在我的例子中是redis)交谈,以便批量获取10万个文档。
    2. 每个文档都会进行处理,如果它是有效的,则将其写入客户端。类似地,多达25个示例文档被写入客户端。
    3. 当处理完整的数据集(但写入的文档不超过25个)时,将计算和发送结果。
    4. 连接已成功关闭。

所以有一个db等待,所有类似的请求都有,然后对每个文档进行处理,这发生在同一个线程中。

在这种情况下,切换到异步servlet与常规同步servlet相比有什么好处吗?

另外,如果我确实使用了异步servlet,那么尝试用线程池并行处理文档会有什么好处呢?似乎我不会得到任何额外的好处,但也想澄清这一点。

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

发布于 2014-04-11 07:26:04

在这种情况下,切换到异步servlet与常规同步servlet相比有什么好处吗?

是。事实上,所有手册都告诉您“异步servlet对此很有用”,这就是用例。

另外,如果我确实使用了异步servlet,那么尝试用线程池并行处理文档会有什么好处呢?似乎我不会得到任何额外的好处,但也想澄清这一点。

不相关。异步servlet只会释放资源,因此您的服务器会继续响应请求,即使很多servlet都在等待结果。它与响应异步请求的速度无关。

从优化逻辑中获得的任何好处对服务器和用户都有好处,但如果您使用异步servlet或同步servlet,则会很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23005986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档