首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止servlet响应

停止servlet响应
EN

Stack Overflow用户
提问于 2010-09-15 20:17:35
回答 2查看 381关注 0票数 0

我正面临着以下问题。我有一个servlet,它通过视频剪辑为客户端请求提供服务。但这个视频剪辑是另一个线程(代码转换器)的产物。如果由于代码转换线程尚未完成其工作而导致剪辑未准备好下载,则客户端请求将失败!对如何处理这个案例有什么建议吗?如何停止servlet的响应,直到线程准备好代码转换的片段?

提前感谢!安东尼斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-15 20:30:42

这里要做的最简单的事情就是使用Future。向转码器提交请求,让转码器立即返回Future。然后,HTTP线程可以在将来调用get时阻塞,直到视频准备好为止。

加入对我来说不是一个好的选择。Thread#join会一直阻塞,直到目标线程终止,但线程是否在完成作业后终止是实现细节。例如,如果代码转换器将使用缓存的线程池,则应用程序。休息一下。

票数 2
EN

Stack Overflow用户

发布于 2010-09-15 20:24:03

您可以使用常规方法(睡眠、等待、加入、Future#get)延迟servlet的执行。

在你的例子中,听起来你想加入转码视频的Thread (或get the Future)。

然而,只有当你需要阻塞的时间只有几秒钟时,你才应该这样做。否则,客户端浏览器可能会使请求超时,或者用户体验很差。如果代码转换工作需要更长的时间,可以考虑输出进度条之类的内容,它会不断轮询服务器,直到任务完成,然后才会尝试加载视频剪辑。

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

https://stackoverflow.com/questions/3717488

复制
相关文章

相似问题

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