How it works - wildberries-tech/universal-harvester GitHub Wiki
Приближённая схема
Приближённая схема работы выгляди так:
На каждый запуск сценария одновременно запускаются экземпляры движка для каждого шага. Экземпляр движка это отдельный процесс python engine.py , таким образом обеспечивается параллельность выполнения шагов. Далее для каждого шага:
- Выделяются параметры конкретно для этого шага (раскрытие conjoined).
- JSON шага модифицируется согласно сценарию (replacement)
- Если у шага есть зависимости (по apply или данные используются в sqlite3/duckdb/pandas), движок ждёт выполнения этих шагов.
- Движок проверяет превышение допустимого количества шагов, работающих с конкретным источником, если значение превышено, то происходит ожидание момента, когда эти экземпляры движков будут выполнены.
- Происходит инъектирование параметров в JSON шага и исполнение, для apply это повторяется на каждую запись apply данных.
- Происходит запись результата выполнения в storage.
- Если это последний выполняемый в сценарии шаг, то происходит оповещение пользователя о выполнении.