如何在play-framework中获得预定作业的结果?

时间:2012-05-09 15:18:19

标签: java playframework scheduled-tasks playframework-1.x

我的工作安排每隔几分钟运行一次,但是如何完成这项工作的结果呢?

作业从数据库获取数据并返回结果。

由于只有Job.in()Job.now()返回promise结果,如何从每隔几分钟运行一次的预定作业中获取结果。

我正在使用playframework 1.2.5Rc1

1 个答案:

答案 0 :(得分:4)

您必须将结果存储在其他位置。然后,您可以在需要时查找结果。从计划作业中“返回”结果并不真正有意义,因为您从未真正对它们进行过引用。 API可以返回第一个预定作业的承诺,但这会使所有其他预定作业处于黑暗状态。

您可以做的一件事是将预定的作业推送结果转换为BlockingQueue。然后在代码的其他地方,你可以调用阻塞的take()方法,直到它可以从队列中取出一些东西。这有点像一个不断补充的承诺。它还允许队列填满而不必担心立即处理每个结果。