gpt4 book ai didi

java - App Engine Java - 当所有任务完成其流程时执行最终事件

转载 作者:行者123 更新时间:2023-12-01 09:55:59 24 4
gpt4 key购买 nike

我正在开发一个 App Engine 应用程序,其中 http 请求会产生未定义数量的任务(可以是 10、可以是 100、可以是 1000)。这些任务将在 PUSH 队列上运行。

当所有任务完成后,我需要一个结论性的操作来获取每个任务的状态并创建最终报告(所有已执行操作的摘要)。对于此示例,我们假设这是一次电子邮件传送。

附加信息是任务按公共(public)值(我们称之为 group_id)进行分组。当同一 group_id 的所有任务都完成时,可以针对该特定组执行该事件。我这么规定是因为如果其他任务仍在运行,但有其他group_id,则该组的事件也可以执行。

我想知道哪种方法是实现这样的事情的最佳方法。当然,可以有很多“自制”解决方案,其中(例如)我将每个任务的状态保存在数据存储实体中并检索每个状态,否则每个任务可以“询问”其兄弟并检查它是否是最后一个.

我的问题是是否有更高级的解决方案来实现此行为。

通过快速搜索,我发现管道 API [1] 似乎很有前途,但我不确定它是否是我所需行为的正确解决方案。在 stackoverflow 上,这个库广受好评,所以也许是正确的方法。

这是我读过的一些帖子

如果我正确理解了此 Pipeline API 的实现,当作业启动时,它会提供一个 jobId 来测试它是否已完成或仍在运行。如果是这样,这需要对工作状态进行外部民意调查,但这不是我的情况。我的特殊需求是当最后一个完成时,自动触发最终事件

[1] https://github.com/GoogleCloudPlatform/appengine-pipelines

最佳答案

您可以使用单个数据存储实体来存储 group_id、已启动的任务数和已完成的任务数。完成后,每个任务都会更新此实体,如果完成的任务数等于启动的任务数,则创建“最终”任务以生成报告。

关于java - App Engine Java - 当所有任务完成其流程时执行最终事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37215947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com