Mule - 批处理作业同步或异步

Mule - Batch Job sync or async

我在不同的流程中有两个批处理作业。首先,在 Salesforce 中执行更新插入,完成后,它会调用具有另一个批处理作业的第二个流程。

这张图片代表流:

但是当我在控制台上看到日志时,有时第二批的日志会和第一批的日志混在一起

我感觉批处理是异步的,即使正在处理第一批,也会调用第二批。

我错了吗?我应该注意日志的顺序吗? 如果我想让它完全同步,最好的方法是什么?

是的,批处理作业是异步的。一旦批处理 execute 被触发,流程就会转到下一个事件处理器。

如果批处理作业 2 只需要在批处理作业 1 之后 运行,那么您可以使用第一个批处理作业的 on-complete 阶段来触发一些事件以指示第一个批处理作业已完成,以便可用于触发第二批作业。

或者,如果批处理作业密切相关,您可以使用多个批处理将它们合并为一个 steps

Mule Batch 是异步的,就像发射后忘记一样。如果要在第一批完成后调用第二批,则在第一批的 'On Complete' 阶段调用第二批,如下图所示。

如果你想在调用第二批之前做一些功能,那么你需要使用request-reply范围来使批组件同步。