,无论如何,我可能会有某些任务可以并行进行。如果这些并行任务都成功了,那么我可以成功
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();
}
注意,即使是几个月的任务也可以是必要的。不需要外部队列,因为暂时性在内部使用它们来调用任务。