doc/BPM/workflow/pattern/ai_blocking_operation.md
2025-09-12 20:30:47 +03:00

2.5 KiB
Raw Blame History

11

Описание задачи

  • Процесс 1: По нажатию кнопки включается станок, который работает по таймеру 20 минут.
  • Процесс 2: Есть внешний сигнал, который может остановить станок до истечения таймера.

BPMN-диаграмма в Markdown (для GitHub)

Для размещения на GitHub удобно использовать Mermaid — популярный синтаксис для визуализации диаграмм в Markdown.

flowchart TD
    Start([Старт])
    ButtonPress{{Нажата кнопка?}}
    MachineOn[Включить станок]
    TimerEvent([Таймер: 20 минут])
    ExternalSignal([Внешний сигнал: Остановить станок])
    StopMachine[Остановить станок]
    End([Конец])

    Start --> ButtonPress
    ButtonPress -- Да --> MachineOn
    MachineOn --> ParallelSplit
    ParallelSplit{{Параллельный шлюз}}
    ParallelSplit --> TimerEvent
    ParallelSplit --> ExternalSignal

    TimerEvent -- По истечении 20 мин --> StopMachine
    ExternalSignal -- По сигналу --> StopMachine

    StopMachine --> End

Пояснения к схеме

  • Параллельный шлюз (ParallelSplit) используется для одновременного ожидания двух событий: истечения таймера и внешнего сигнала.
  • Станок останавливается при наступлении любого из событий (таймер или внешний сигнал).
  • Диаграмма легко вставляется в README.md на GitHub с помощью блока ```mermaid.

Кратко о BPMN-элементах

  • Стартовое событие — начало процесса.
  • Задача — действие (включить станок).
  • Параллельный шлюз — позволяет слушать несколько событий одновременно.
  • Промежуточное событие — таймер или внешний сигнал.
  • Конечное событие — завершение процесса 5.

Если нужна схема в виде BPMN XML или другой формат — уточните, и я помогу!