【问题标题】:Mule - Batch Job sync or asyncMule - 批处理作业同步或异步
【发布时间】:2019-05-24 18:28:17
【问题描述】:

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

这张图片代表流程:

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

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

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

【问题讨论】:

    标签: asynchronous mule batch-processing synchronous flow


    【解决方案1】:

    Mule Batch 是异步的,就像一发不可收拾。如果要在第一批完成后调用第二批,请在第一批的“完成”阶段调用第二批,如下图所示。

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-26
        • 1970-01-01
        • 1970-01-01
        • 2014-03-26
        相关资源
        最近更新 更多