НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2805] SLA, командные очереди и ранжирование задач📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Новые возможности | 2026.3 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: Нет
Завершено: 07.09.2026 08:13
Цель Добавить в Tasks промышленное управление сроками, приоритетами и загрузкой: SLA первого ответа и выполнения, паузы, OLA между линиями поддержки, командные очереди, WIP-ограничения, эскалации, таймеры, отложенные действия и настраиваемое ранжирование задач.
Контекст
Задачи должны не просто храниться в системе, а управляемо исполняться по срокам, рабочему времени, приоритетам и командной нагрузке. Tasks должен хранить taskspecific SLAправила, результаты расчета, признаки очереди, доменные причины паузы, правила ранжирования и реакцию на нарушения. При этом общий календарь рабочего времени принадлежит WorkCalendar, фоновое выполнение - Queue, события и доставка - EventBus, trace id - TraceContext, фильтры и материализованные выборки - WorkflowFilter, права - Security, эксплуатационные метрики - Observability.
Что Нужно Сделать
Поддержать сроки задачи: срок первого ответа, факт первого ответа, срок выполнения, факт решения, факт закрытия, контрольные даты и признаки нарушения.
SLAправило должно задаваться проектом, типом задачи, сервисом, компонентом, приоритетом, каналом создания, уровнем влияния или другим taskspecific признаком.
Если SLA отключен для проекта или типа задачи, задача должна продолжать создаваться и проходить workflow без расчетов SLA.
Использовать WorkCalendar для расчета рабочих дней, смен, праздников, часового пояса, сроков реакции, сроков выполнения и напоминаний. Tasks хранит выбранное правило, выбранный календарь, абсолютную дату и вычисленные признаки рабочего времени.
Проект должен иметь календарь по умолчанию, а тип задачи, приоритет или SLA-правило должны иметь возможность переопределить его.
Поддержать пересчет открытых задач при изменении календаря, SLA-правила, статуса, ответственного, паузы, приоритета, блокера или контрольной даты. Тяжелый пересчет выполняется через Queue.
Поддержать причины паузы SLA: ключ, название, описание, область применения, активность, влияние на разные SLA-метрики и обязательность комментария.
Workflow-переходы должны иметь возможность включать и снимать паузу SLA, фиксируя период паузы, пользователя или системное действие, причину и комментарий.
Отчеты и списки должны показывать календарное время, рабочее время, время на паузе, чистое время выполнения и признак зависшей задачи, если проект это требует.
Поддержать OLA для внутренних линий поддержки: линия, группа исполнителей, компетенции, рабочий календарь, внутренний срок, правила передачи, возврата и отдельная отчетность по просрочке линии.
Передача между линиями поддержки должна выполняться через workflow-переход с причиной, комментарием и историей 907.
Поддержать командные очереди, где задача назначается группе или очереди до выбора конкретного исполнителя.
Очередь должна иметь ключ, название, проект, WorkflowFilter, участников, правила сортировки, правила взятия в работу, WIP-ограничения и режим выбора: любая доступная задача или следующая по приоритету.
Пользователь должен иметь возможность взять следующую доступную задачу из очереди с учетом прав, компетенций, WIP-лимитов, отсутствий и текущего статуса задачи.
Взятие задачи из очереди должно выполняться через workflow-переход и фиксироваться в истории 907.
Руководитель должен видеть состояние очередей: объем, просрочку, среднее ожидание, исполнителей, WIP, задачи без движения и задачи без подходящего исполнителя.
Поддержать WIP-лимиты для проекта, workflow, статуса, пользователя, рабочей группы, компетенции или их комбинации. Нарушение лимита должно иметь режим предупреждения, запрета или административного подтверждения.
Поддержать многоуровневую матрицу эскалаций: условие срабатывания, получатели, действие, задержка, канал уведомления, повторяемость и правило отмены.
Эскалация должна выполняться через EventBus и Queue, не отправляя уведомления напрямую из Tasks.
Поддержать таймеры и отложенные workflow-действия: напоминание, эскалация, возврат из ожидания, автоматическое закрытие, повторный запрос или служебный переход.
Перед выполнением отложенного действия система должна повторно проверить актуальность задачи, права, блокировки, аварийный режим, condition-формат и версию записи.
Карточка задачи должна показывать активные таймеры, ближайшие плановые действия, SLA-состояние и причины просрочки пользователям с соответствующими правами.
Поддержать настраиваемую формулу ранжирования задач в очередях: приоритет, SLA, возраст, сторона ожидания, риск, влияние, блокеры, компетенции, WIP, ручное повышение и календарь.
Результат ранжирования должен быть доступен для сортировки списков, dashboard-счетчиков и командных очередей. Администратор должен видеть объяснение факторов, повлиявших на позицию задачи.
Ручное повышение или закрепление позиции в очереди должно требовать отдельного права и фиксироваться в истории 907.
Поддержать материализованные очереди, списки и dashboard-счетчики для тяжелых фильтров и часто используемых представлений. Пересчет выполняется через Queue инкрементально или по расписанию.
Подготовить taskspecific providerпроверки для HealthCheck: наличие SLAправил, календарей, очередей, фильтров, таймеров, handlerов Queue, прав, форматов условий и корректных связей с проектом.
Tasks владеет taskspecific SLAправилами, сохраненными результатами SLAрасчета, причинами паузы, OLAлиниями, командными очередями, WIPpolicy, правилами эскалации, taskspecific timer definitions, формулой ранжирования, доменными признаками просрочки и provider-проверками.
WorkCalendar владеет общим календарем рабочего времени, сменами, праздниками, исключениями, timezone и API расчета рабочего времени.
Queue владеет runtime фоновых заданий, scheduling, retry, timeout, backoff, dead-letter, worker management и ручным повтором.
EventBus владеет event log, outbox/inbox, delivery, subscriptions, notification profiles, idempotency registry и dead-letter доставки.
TraceContext владеет созданием, приемом, распространением и диагностикой trace id.
WorkflowFilter/WorkflowView владеют универсальными фильтрами, materialized slices, списками, dashboard-блоками и представлениями.
Security владеет проверкой прав на очередь, переход, ручное повышение, раскрытие SLA-данных, назначение и административное подтверждение.
Observability, WorkflowBoard, WorkflowCalendar, Automation, BI и capacity planning не входят в эту задачу; Tasks должен только публиковать task-specific сигналы и данные, нужные этим будущим модулям.
Задача может иметь срок первого ответа, срок выполнения, факт первого ответа, факт решения и факт закрытия.
SLA можно включить и отключить на уровне проекта или типа задачи без поломки обычного workflow задачи.
Расчет сроков использует WorkCalendar, а задача хранит выбранное правило, календарь, абсолютную дату и признаки рабочего времени.
Пауза SLA включается и снимается через workflow, хранит причину, период, исполнителя и комментарий, а отчеты отличают календарное время, рабочее время и время на паузе.
Изменение календаря, SLA-правила, статуса, ответственного, блокера или приоритета запускает корректный пересчет без синхронной тяжелой обработки в пользовательском запросе.
Командная очередь позволяет взять следующую доступную задачу с учетом прав, компетенций, WIP-лимитов и отсутствий; обход правил очереди запрещается настройкой проекта.
Руководитель видит состояние очередей, просрочки, WIP, среднее ожидание и задачи без движения через настроенные представления.
Эскалации, напоминания и отложенные действия выполняются через Queue/EventBus и повторно проверяют актуальность условий перед исполнением.
Формула ранжирования дает сортируемый результат и человекочитаемое объяснение факторов.
Ручное повышение позиции в очереди требует права и фиксируется в истории 907.
HealthCheck показывает проблемы SLA/очередей/таймеров с указанием владельца исправления.
-
Реализован первый кодовый срез Tasks Core.
Что сделано:
Границы:
Проверки:
-
Стековый PR поверх #1302 / I128-2800, потому что базовый контракт записи Tasks еще не в develop. После merge #1302 ветку нужно будет перебазировать или retarget на develop.
Что сделано:
Проверки:
-
Реализован кодовый срез I128-2803: рабочее место задач и внутренний API модуля Tasks.
Что изменено:
Границы:
Проверки:
-
Реализован кодовый срез I128-2804 для модуля Tasks.
Что изменено:
Границы:
Проверки:
-
Расширен ObjectDataTask полями SLA, пауз SLA, очереди, OLA-линий, таймеров, контрольных дат и результата ранжирования.
Добавлены taskspecific функции для объяснения SLA, расчета ранга и подготовки Queue-пересчета.__call
Добавлены Workflow-команды Tasks: первый ответ, решение, пауза SLA, снятие паузы, взятие задачи из очереди, ручное повышение ранга.
Системный проект Tasks расширен экраном SLA/очереди, фильтрами, колонками, секциями карточки и доменными справочниками SLA/OLA/queue/WIP/timer/ranking.
Добавлены форматы представления, WS/WSS/MNU, Queue handler-ы и Help по SLA/очередям/ранжированию.
Tasks хранит taskspecific правила, сохраненные результаты, поля, команды и payloadы. WorkCalendar, Queue runtime, EventBus, WorkflowFilter/View, Security и Observability остаются владельцами своих системных контрактов.
php/inc/pft128: OK, 24 файла.modules/Tasks/workflow/tasks.json: OK.git diff --check: OK.Tasks::SetupModuleConfigure(): OK.Tasks: total=13, passed=13, failed=0, skipped=0, blocked=0, warning=0.?id=Tasks/List, My, New, Done, All, Create - HTTP 200 без PHP warning/fatal.Target branch: feature/I128~~2804~~tasks~~domain~~entities-relations.
Commit: 269dc31177bdb8222dc01291bfda43d3541e6dfd.
[I128-2811] Заявительский портал TaskPortal
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2790] Расширить Workflow* для промышленного контура задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2793] Ввести TraceContext для сквозной трассировки операций
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2794] Реализовать системную событийную шину EventBus
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2795] Расширить Queue как runtime фоновых заданий, retry и расписаний
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2797] Расширить Security для проектных прав, полей, действий и аудита доступа
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2800] Каноническая запись задачи TASK
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2804] Доменные сущности, связи и классификация задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2817] Реализовать общесистемные рабочие календари WorkCalendar
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2818] Реализовать наблюдаемость Observability для промышленных модулей
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2821] Реализовать рабочие доски WorkflowBoard для workflow-записей
Статус: Завершено | Автор: Ilya Mikhaylenko