玩!框架 1.2.4:是不是可以知道待处理作业的参数(doJobWithResult)

Posted

技术标签:

【中文标题】玩!框架 1.2.4:是不是可以知道待处理作业的参数(doJobWithResult)【英文标题】:Play! Framework 1.2.4: Is it possible to know parameters of a pending job (doJobWithResult)玩!框架 1.2.4:是否可以知道待处理作业的参数(doJobWithResult) 【发布时间】:2012-04-26 11:22:43 【问题描述】:

我正在开发一个使用异步计算数组的应用程序。

这里是如何完成这项工作的:

    List<F.Promise<PredictionCalculator>> promises = new ArrayList<F.Promise<PredictionCalculator>>();
    predictWithJobResult pj = new predictWithJobResult(parameter).now;
    promises.add(pj)

我这样做了 n 次,在将作业添加到队列后,我执行以下代码:

promises.notifyAll();

所以作业开始运行,我的问题是,这项作业每 60 分钟运行一次。因此,如果已经有一个带有“x”参数的作业正在运行,它必须再次跳过将此作业添加到队列中。

所以我的问题是,我如何查询正在运行的作业及其参数?有可能吗?

【问题讨论】:

【参考方案1】:

为什么不构建一个正在运行的作业队列对象(Singleton),您可以在其中查询哪些作业在运行前检查队列中的参数,在运行时添加自己,并在完成时删除自己。

【讨论】:

这可能是个好点,但我也想知道我们是否可以使用“播放状态”命令获取正在运行的作业,我们是否也可以使用代码获取该信息? 要厌倦的一件事:游戏是无国籍的。如果您启动多台服务器,这将引发有关检查作业是否已在运行的问题。不幸的是,更好的方法是将条目添加到您的数据库中。【参考方案2】:

没有简单的方法可以从 Promise 中获得工作。您可以做的是使用 Map,predictWithJobResult> 而不是列表来存储您的承诺,并使用此地图从您的承诺中查找您的工作

【讨论】:

以上是关于玩!框架 1.2.4:是不是可以知道待处理作业的参数(doJobWithResult)的主要内容,如果未能解决你的问题,请参考以下文章

玩框架! (1.2.4):null前几个动态参数

玩!框架 1.2.4 - 从 morphia 立即保存

BigQuery 作业统计信息不完整或作业完成后待处理任务的原因

减少 HFileOutputFormat 中待处理的作业

玩!框架 1.2.4 根上下文问题

玩 1.2.4:处理 POST 请求,body 中带有 XML