НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2795] Расширить Queue как runtime фоновых заданий, retry и расписаний📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Новые возможности | 2026.3 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: ИРБИС 128. Модуль Queue - Очередь задач
Завершено: 09.09.2026 07:27
Цель
Расширить Queue до системного runtime фоновых заданий, повторов, расписаний, deadletter и workerуправления для промышленных модулей ИРБИС 128.
Контекст Queue должна выполнять тяжелые, отложенные, повторяемые и плановые операции, которые нельзя надежно выполнять в пользовательском запросе. Queue не должна знать доменную структуру Tasks, Workflow*, EventBus, FT или других модулей: модуль-владелец регистрирует handler и определяет payload, а Queue управляет выполнением.
Что Нужно Сделать
Ввести модель QueueJob: ключ, тип handler-а, владелец, queue channel, priority, status, payload profile, trace id, idempotency key, created/started/finished timestamps, progress, result и error summary.
Ввести queue channels и priority policy: разные классы заданий должны выполняться в предсказуемом порядке и не блокировать друг друга.
Ввести handler registry: модуль-владелец регистрирует обработчик, описание параметров, expected result, retry policy, timeout, права запуска и диагностический contract.
Реализовать worker runtime: выбор задания, блокировка на выполнение, heartbeat, timeout, graceful stop, защита от двойного выполнения и восстановление после падения worker-а.
Реализовать retry policy: max attempts, backoff, jitter, retryable/non-retryable errors, next run time, ручной retry с проверкой прав.
Реализовать deadletter для заданий, которые больше нельзя автоматически повторять. Deadletter должен иметь видимую причину, diagnostic payload и безопасный сценарий восстановления.
Реализовать scheduling: задания по времени нужны для SLA, напоминаний, подписок на фильтры, очистки временных файлов, пересчета materialized views и maintenance-процессов.
Реализовать joblevel idempotency, не подменяя бизнесидемпотентность EventBus.
Реализовать защиту payload: секреты и скрытые данные не должны попадать в UI, логи, TestA evidence и экспорт диагностики.
Интегрировать Queue с TraceContext, EventBus, Security, HealthCheck и Observability.
Queue управляет runtime выполнения, но не реализует доменную логику handlers.
Queue не является event log и не должна хранить историю предметных действий вместо EventBus или 907.
Queue не должна обходить Security: права на запуск, просмотр, retry и отмену заданий проверяются общим механизмом.
Handler модуля-владельца можно зарегистрировать и выполнить без изменения ядра Queue.
Задание нельзя выполнить дважды при конкурентных worker-ах или повторе запроса.
Retry/backoff/timeout работают по policy, а окончательная ошибка попадает в dead-letter.
Scheduled jobs запускаются в нужное время и видны в диагностике.
Администратор может безопасно посмотреть статус, прогресс, ошибку и выполнить ручной retry, если имеет право.
Payload и error output маскируются перед показом пользователю и попаданием в отчет.
-
Первый кодовый срез по I1282795: общий runtimeконтракт Queue для фоновых заданий, retry, scheduling и диагностики.
Сделано:
Границы:
Проверка:
[I128-2796] Расширить FT как постоянное хранилище вложений задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2805] SLA, командные очереди и ранжирование задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2808] Защита публичных каналов AbuseProtection
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2809] Сохраненные и материализованные фильтры WorkflowFilter
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2810] Миграция VirtualRef в промышленный контур Tasks
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2811] Заявительский портал TaskPortal
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2817] Реализовать общесистемные рабочие календари WorkCalendar
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2818] Реализовать наблюдаемость Observability для промышленных модулей
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2820] Реализовать общесистемную автоматизацию Automation
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2821] Реализовать рабочие доски WorkflowBoard для workflow-записей
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2822] Реализовать календарные представления WorkflowCalendar для workflow-записей
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2824] Расширить NewsFeed для ленты проектной активности workflow-проектов
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2827] Расширить I128FMail как входящий почтовый канал задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2830] Реестр API-контрактов и профилей внешней интеграции
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2832] Политики bidirectional sync и conflict resolution в модуле API
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2837] AITool policy и safe execution
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2838] AI-операции задач в модуле Tasks
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2839] Реализовать WorkflowApproval для формальных согласований workflow-переходов
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2840] Реализовать WorkflowDesigner как единую административную студию настройки workflow-проектов
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2793] Ввести TraceContext для сквозной трассировки операций
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2792] Зафиксировать runtime-контракт EventBus, Queue и TraceContext
Статус: Завершено | Автор: Ilya Mikhaylenko