« 上一篇下一篇 »

多线程带有状态信息的运行请求

多线程考虑假脱机打印工作方式,一个用户可以在一个会话处理应用中点击一个打印按钮,当打印请求排队时可能只是轻微停顿一下。通常接受请求的打印机信息出现可能是一个标识打印请求的作业ID,然后缓冲的输出配对等待打印机可以利用。其他的一些任务可能包括监视打印队列状态,保存和释放作业,改变优先权,取消作业等等。

一个JSP页面可进行类似操作。不是在当前线程中运行一个复杂任务,它可以通过启动一个后台线程运行,并将线程的引用保存为一个会话属性。用户可以接受到请求已经排队和正在被服务的通告。JSP页面也可以给出显示请求状态和用户可以保存、释放、取消请求的界面。当请求完成时,JSP页面可以给出查看结果的一个超级链接。被强大的JSP页面处理的长时间的请求甚至会使其结果被电邮给用户。

此技术的一个变体可向用户提供一个状态条以指出请求正在被处理,请求完成时则以结果替换它。此技术的关键是使用一个后台会话范围内的线程执行工作。Servlet引擎可自由处理其他请求而无需等待验证请求结束,用户不必手工请求被修改的状态。HTML给出周期性修改页面的客户端自动方式。

« 上一篇下一篇 »