我在不同的流程中有两个批处理作业。第一种方法是在Salesforce中执行Upsert,当它完成时,它调用具有另一个批处理作业的第二个流。
此图像表示流:
但是当我在控制台上看到日志时,有时第二批的日志与第一个的日志混合在一起。
我感觉到批处理过程是异步的,第二批进程被调用,即使第一批正在处理。
我错了吗?我应该注意原木的顺序吗?如果我希望它完全同步,那么最好的方法是什么呢?
发布于 2019-05-24 19:00:13
骡子批次是异步的,它就像火和遗忘。如果您想在第一批完成后调用第二批,那么在第一批的“完成”阶段调用第二批,如下图所示。
如果您想在调用第二批之前执行某些功能,那么需要使用request作用域来使批处理组件同步。
发布于 2019-05-24 18:59:58
是的,批处理作业是异步的。一旦触发批处理execute
,流将转移到下一个事件处理器。
如果批处理作业2只需要在批处理作业1之后运行,则可以使用第一个批处理作业的on-complete
阶段触发某些事件,以指示第一个作业已经完成,从而可以用来触发第二个批处理作业。
或者,如果批处理作业与此密切相关,则可以使用多个批处理step
将它们组合为一个。
https://stackoverflow.com/questions/56297903
复制相似问题