设计长期运行的交易

问题描述 投票:0回答:0
由于每个任务都按顺序进行...此项起作用。

,无论如何,我可能会有某些任务可以并行进行。如果这些并行任务都成功了,那么我可以成功

ofrchestrator { 任务1 任务2 任务3 (完成任务3。任务4,5,6需要并行执行) task4任务5任务6 成功 }

是否有一些开源框架来写这篇文章?我目前使用基于弹簧靴的堆栈。

这样处理情况的最佳方法是什么:某些任务按顺序进行,有些是并行的。订购任务的消息队列和并行任务的pub/sub?汇总并行任务结果的最佳方法是什么(这也可能需要一段时间,因为这是一个长期运行的传奇)?

任何帮助都会感谢。

您的要求在

temporal.io

(例如基于执行)的编目上都涵盖了您的要求。这是您用例的实现:

public void parallelTasks() { activities.task1(); activities.task2(); activities.task3(); Promise<Void> t4 = Async.procedure(activities::task4); Promise<Void> t5 = Async.procedure(activities::task5); Promise<Void> t6 = Async.procedure(activities::task6); Promise.allOf(t4, t5, t6).get(); }

注意,即使是几个月的任务也可以是必要的。不需要外部队列,因为暂时性在内部使用它们来调用任务。

design-patterns microservices message-queue messaging saga
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.