Временные исходники и промежуточные файлы заданий теперь имеют общий жизненный цикл. Обработчик получает путь через JobContext::getWorkspace()->path('offers.jsonl'), а очистку выполняет пакет.
- Один каталог на запуск; продолжения и автоматические повторы используют прежние файлы.
- Системная задача
cms-job.cleanup-workspacesвыполняется ежечасно и допускает ручной запуск. Успешные снимки хранятся 7 суток, остальные завершённые — 14 суток. - Активные, ожидающие, удержанные и неоднозначные папки сохраняются. Блокировки защищают от живого старого исполнителя даже после истечения аренды в БД.
- Карантин на той же файловой системе и журнал позволяют продолжить удаление после сбоя. Есть dry-run и ручное удержание.
- История сохраняется, пока нужны рабочие ресурсы. Старые проектные папки автоматически не удаляются.
- Добавлено руководство
WORKSPACES.mdдля разработчиков и эксплуатации.
Проверено: 58 изолированных сценариев рабочих папок, 40 проверок обслуживания и 8 проверок проектного адаптера импортов.
Миграций БД нет. Для системных расписаний нужен cms-agent 3.2.5+. При внедрении необходимо согласованно обновить пакет и обработчики, мягко перезапустить воркеры и применить cmsAgent/init. Поддерживается локальная файловая система с flock и атомарным rename. Старые каталоги требуют отдельной инвентаризации и очистки.
