在ZK中止按钮

时间:2012-03-05 13:46:08

标签: zk

我想在下面放置一个Abort标签或按钮......处理消息显示在ZK中。或者有没有办法加载我的自定义组件而不是默认的处理。消息在ZK。

如果在处理过程中中止将会发生,这是理想的,我想这样做,无论如何我的应用程序在加载时睡眠的次数

1 个答案:

答案 0 :(得分:0)

ZK是基于Servlets构建的。当等待ajax响应的ui上显示busy按钮时,servlet线程正在服务器上进行长时间运行的工作。也许有可能发送另一个线程来中断第一个线程,但实际上这是高风险,因为所有的servlet线程最终都可以完成长时间运行的工作,并且没有新线程可以取消它们。

最好的解决方案是长时间运行的工作不应该在servlet线程上,而是传递给后台线程或消息队列。见zk-asynchronous-ui-updates-and-background-processing。在该示例中,工作被卸载到java.util.concurrent.ExecutorService,该服务具有取消工作的API。

请注意,取消工作线程会使用中断,并且无法保证执行该工作的代码将正确响应中断,以使其实际可以取消。线程cancel with executor service上的答案概述了一些问题,您应该测试使用API​​是否可以中断您正在进行的工作。