如何在播放框架中获得预定作业的结果?
Posted
技术标签:
【中文标题】如何在播放框架中获得预定作业的结果?【英文标题】:How to get the result of a scheduled job in play-framework? 【发布时间】:2012-05-09 15:18:19 【问题描述】:我安排了一个每隔几分钟运行一次的作业,但是当它完成后如何获得该作业的结果?
作业从数据库中获取数据并返回结果。
由于只有 Job.in()
和 Job.now()
返回 promise
结果,我如何从每隔几分钟运行的计划作业中获取它。
我正在使用playframework 1.2.5Rc1
【问题讨论】:
您是否有理由不能将逻辑添加到查询数据库的作业中? 【参考方案1】:您必须将结果存储在其他地方。然后,您可以在需要时查找结果。从计划的作业中“返回”结果并没有真正意义,因为您从未真正参考过它们。 API 可以为第一个计划作业返回一个承诺,但这会使所有其他计划作业一无所知。
您可以做的一件事是将计划的作业推送结果到BlockingQueue。然后在代码的其他地方,您可以调用 take()
方法,该方法会阻塞,直到它可以将某些内容从队列中拉出。这就像一个不断补充的承诺。它还可以让队列填满,而无需担心立即处理每个结果。
【讨论】:
我希望得到一个 Promise 结果,这样每次任务完成我都可以用它做点什么。 我想你可以用 BlockingQueue 实现类似的东西?让调度的作业将结果放入队列,并使用take()
阻塞,直到有结果为止。以上是关于如何在播放框架中获得预定作业的结果?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Pentaho BI server v6 CE 上部署预定的 Kettle 作业