2012-03-05 9 views
2

中止ラベルまたは下のボタンを押すと、処理メッセージがZKに表示されます。または既定の処理の代わりにカスタムコンポーネントをロードする方法があります。 ZKのメッセージ。処理は、それは理想的な私はZKの中止ボタン

答えて

0

ZKはサーブレット上に構築されているロード中に数回、私のアプリケーションが眠るとにかくとしてことをやりたい、ということやっている間に中止しなければ

欲しいが発生します。 ajaxレスポンスを待っているUiにビジー・ボタンが表示されると、サーブレット・スレッドはサーバー上で長時間実行されています。おそらく、最初のスレッドを中断するために別のスレッドを送信することは可能ですが、実際にはすべてのサーブレットスレッドが長時間実行され、新しいスレッドをキャンセルすることはできません。

最善の解決策は、サーブレットスレッド上にあるべきではなく、バックグラウンドのスレッドまたはメッセージキューに渡すことです。 zk-asynchronous-ui-updates-and-background-processingを参照してください。この例では、作業は、作業をキャンセルするAPIを持つjava.util.concurrent.ExecutorServiceにオフロードされます。

作業スレッドの取り消しは割り込みを使用し、作業を実行するコードが実際に取り消し可能なように割り込みに正しく応答することは保証されません。スレッドの回答cancel with executor serviceではいくつかの問題の概要を説明しており、実行している作業がAPIを使用して中断できるかどうかをテストする必要があります。