api - 在一定数量的记录后停止 Mule Batch Job
问题描述
我正在使用批处理作业通过 API 读取和更新图像。图像是从一个文件夹中读取的,它可以是文件夹中可用的数百个图像。因为它在服务器上很重,我只想读取和处理 100 张图像,然后停止该过程并在几个小时后再读取 100 张等。
我已将批处理块大小设置为 100,但批处理作业将继续运行数小时,直到它处理完文件夹中的所有图像。我怎样才能让它只读取和处理 100 张图像然后再次停止?
提前致谢。
解决方案
你不能,你甚至不应该尝试。Batch 旨在处理它收到的所有记录。
一种解决方案是发送更少的记录。例如从文件夹中读取较少的记录,或者丢弃除前 100 条之外的所有记录。
另一种解决方案可以让批处理所有记录,但将并发减少到 1,以便逐块顺序处理记录。
sftp:list 操作似乎没有办法配置它,但它的输出是一个消息数组。您可以使用 DataWeave 脚本来拆分数组。例如take()操作似乎只是做需要的事情。它将返回数组的前 n 个元素。
请注意,您必须确保这些元素已被消耗,否则它们将一直被处理。
推荐阅读
- javascript - 如何使用正则表达式定义从 -50 到 50 的范围
- python-3.x - 为什么它在这段代码中返回 5 而不是 3?
- python - 如何使用 QSqlQueryModel 获取具有给定变量名的数据?
- docker - 在 Docker 上使用 Nginx 重定向端口
- json - 如何分组?Django 休息框架
- oracle - 如何在同一重复记录上插入数据以及更新
- amazon-web-services - PowerShell 未执行 AWS CloudFormation
- java - websocket 被 CORS 策略阻止:没有“Access-Control-Allow-Origin”春季启动
- python - 如何在 procfile 中添加多个工作人员?
- c++ - 我应该运行 C++ exe 程序吗