【问题标题】:Stop a Mule Batch Job after a certain amount of records在一定数量的记录后停止 Mule Batch Job
【发布时间】:2021-06-18 08:02:47
【问题描述】:

我正在使用批处理作业通过 API 读取和更新图像。图像是从一个文件夹中读取的,它可以是文件夹中可用的数百个图像。由于它在服务器上相当繁重,我只想读取和处理 100 张图像,然后停止该过程并在几个小时后再读取 100 张等。

我已将批处理块大小设置为 100,但批处理作业将继续运行数小时,直到它处理完文件夹中的所有图像。如何让它只读取和处理 100 张图像然后再次停止?

提前致谢。

【问题讨论】:

    标签: api image-processing batch-processing dataweave mule4


    【解决方案1】:

    你不能,你甚至不应该尝试。 Batch 旨在处理它收到的所有记录。

    一种解决方案是发送更少的记录。例如从文件夹中读取较少的记录,或者丢弃除前 100 条以外的所有记录。

    另一种解决方案是让批处理所有记录,但将并发减少到 1,以便逐块按顺序处理记录。

    sftp:list 操作似乎没有办法配置它,但它的输出是一个消息数组。您可以使用 DataWeave 脚本来拆分数组。例如,take() 操作似乎可以满足需要。它将返回数组的前 n 个元素。

    请注意,您必须确保这些元素已被使用,否则它们将一直被处理。

    【讨论】:

    • 谢谢阿莱德。我正在使用 sftp:list 列出图像以将它们输入批处理。那么我怎么能告诉 Mule 只读其中的 100 篇呢?感谢您的帮助
    • sftp:list 操作似乎没有办法配置它,但它的输出是一个消息数组。您可以使用 DataWeave 脚本来拆分数组。例如 take() 操作似乎只是做需要的事情:docs.mulesoft.com/mule-runtime/4.3/dw-arrays-functions-take
    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2011-06-13
    • 1970-01-01
    相关资源
    最近更新 更多