2012-05-09 9 views
1

私は数分ごとに実行される予定の仕事を持っていますが、仕事が終わったらどうしたら結果が得られますか?スケジュールされたジョブの結果をplay-frameworkで取得する方法は?

ジョブはデータベースからデータを取得し、結果を返します。

のみJob.in()Job.now()は、私は数分ごとに実行し、スケジュールされたジョブからそれを得るにはどうすればよいpromise結果を返すので。

私はあなたがどこか他の結果を格納する必要がありますplayframework 1.2.5Rc1

+0

データベースを照会するジョブにロジックを追加するだけの理由はありますか? –

答えて

4

を使用しています。次に、必要なときに結果を参照することができます。スケジュールされた仕事の結果を実際に参照していないので、結果を「返す」ことは実際には意味がありません。 APIは、最初にスケジュールされたジョブの約束を返す可能性がありますが、それは他のすべてのスケジュールされたジョブを暗闇の中に残します。

あなたができることの1つは、スケジュールされたジョブプッシュ結果をBlockingQueueに入れることです。あなたのコードの他の場所では、take()メソッドを呼び出すことができます。このメソッドは、キューから何かを引き出すまでブロックします。これは、継続的に補充される約束のようなものです。また、各結果を即座に処理することを心配する必要がないように、キューをいっぱいにすることもできます。

+0

私はPromiseの結果を得ることを望んでいたので、タスクが完了するたびに何かを行うことができました。 – Gautam

+0

BlockingQueueでそのようなものを実装できると思いますか?スケジュールされたジョブに結果をキューに入れ、 'take()'を使用して結果が得られるまでブロックします。 – Jeremy

+0

ありがとう、私はそれを試みます – Gautam

関連する問題