2011-12-26 1 views

答えて

1

Java Threadクラスにはstopメソッドのようなものはありません。理由は不明です。きれいな方法は、interruptedブール値のようなものを持つことです。 play.jobs.Jobを拡張すると、簡単に自分のinterruptメソッドを追加して、ジョブの状態を変更することができます。スレッドならば、あなたは複数の要求の間に割り込みを行いたい場合は、あなたが play.cache.Cacheを使用して情報を一意のID(例えばUUID)を設定することができます

ComputeBigPrime primeJob = new ComputeBigPrime(); 
Promise<Integer> promisedPrime = primeJob.now(); 

// Timeout for interrupt 
await("10s"); 
primeJob.interrupt(); 

// Wait until it's really finished to get the result 
Integer prime = await(promisedPrime); 

render(prime); 

:あなたのような何かを行うことができます中断されているかどうか。もちろん

あなたは仕事が他のいくつかのAPI呼び出しにぶら下がっている場合、これは、動作しないと、あなたが本当にThreadでのようなハードstopを行う必要がある場合は、interruptedブールをチェックするループが、を使用することはできません、コントローラまたはジョブの内部でThreadを使用することができます。そのすべてのJavaだけで動作するはずです。

+1

ありがとう - プロミスオブジェクトのインターフェイスを使用してトリックを行う – BigFatBaby

関連する問題