Как добавить (объединить) переменные внутри пакетной обработки в mule 4?

Я обрабатываю записи из одной БД в другую. Пакетное задание вызывается несколько раз в одном запросе (вызывая URL-адрес API процесса только один раз). Как я могу добавить общее количество обработанных записей (заданное полезной нагрузкой на этапе завершения) для одного полного запроса?

Например, я запустил процесс и трижды выполнил пакетное задание. Итак, я хочу получить сумму всех записей во всех 3 пакетных заданиях.


person Mayur Tripathi    schedule 23.02.2021    source источник
comment
Как вы выполняете партию 3 раза? Я имею в виду, вы выполняете их последовательно? Или параллельно? Если параллельно, вы используете Asynch или для каждой параллели?   -  person Harshank Bansal    schedule 24.02.2021


Ответы (1)


Это невозможно из-за того, как работает пакетная область:

На этапе «По завершении» ни одна из этих переменных (даже исходных) не видна. На этом этапе доступен только окончательный результат. Более того, поскольку экземпляр пакетного задания выполняется асинхронно из остальной части потока, никакая переменная, установленная на этапе пакетного задания или на этапе завершения, не будет видна за пределами области действия пакета.

источник: https://docs.mulesoft.com/mule-runtime/4.3/batch-processing-concept#variable-propagation

Что вы можете сделать, так это сохранить результаты в постоянном репозитории, например, в вашей базе данных.

person aled    schedule 23.02.2021