我面临以下问题。我有一个 servlet,它通过视频剪辑来满足客户端请求。但这个视频剪辑是另一个线程(转码器)的产物。如果由于转码器线程尚未完成其工作而导致剪辑尚未准备好下载,则客户端请求将失败! 关于如何处理此案有什么建议吗?我怎样才能停止 servlet 的响应,直到线程准备好转码剪辑?
提前致谢! 安东尼斯
最佳答案
这里最直接的做法是使用 Future 。向转码器提交请求,并让它立即返回一个 Future
。然后,HTTP 线程可以阻塞此 future 调用 get
直到视频准备就绪。
加入对我来说听起来不是一个好的选择。 Thread#join 会阻塞,直到目标线程终止,但线程在完成作业后是否终止是实现细节。例如,如果转码器使用缓存的线程池,则应用程序。休息。
关于java - 停止 servlet 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3717488/