Использование событий и тайм-аутов в процессах BPEL

Асинхронным веб-службам обычно требуется много времени, чтобы вернуть ответ, и поэтому компонент службы процесса BPEL должен иметь возможность истекать по тайм-ауту или отказываться от ожидания и продолжать работу с остальной частью потока через определенное время. Вы можете использовать действие выбора, чтобы настроить поток BPEL либо на ожидание в течение определенного периода времени, либо на продолжение выполнения своих обязанностей. Чтобы установить период истечения времени, вы можете использовать действие ожидания. Для управления сообщениями могут использоваться события, особенно когда бизнес-процесс ожидает обратных вызовов от партнерских веб-служб.

События

BPEL поддерживает два типа событий:

Сообщения События

Эти события инициируются входящими сообщениями посредством вызова операции для типов портов.

Тревожные события

Эти события связаны со временем и запускаются либо через определенную продолжительность, либо в определенное время.

  • Однако часто бывает полезнее дождаться более одного сообщения, из которых будет только одно.

  • Тревожные события полезны, когда вы хотите, чтобы процесс ждал обратного вызова в течение определенного периода времени, например 15 минут.

    • Если обратный вызов не получен, поток процесса продолжается, как было задумано.

    • Полезно в слабо связанных сервисно-ориентированных архитектурах, где нельзя полагаться на постоянную доступность веб-сервисов.

Выбрать активность

У действия выбора есть 2 ветви -

  • onMessage - код в этой ветке равен коду для получения ответа до того, как был добавлен тайм-аут.

  • onAlarm - это условие имеет код на тайм-аут в одну минуту.

Ждать активности

Операция ожидания позволяет процессу ждать в течение заданного периода времени или до тех пор, пока не будет достигнут предел времени. Должен быть указан точно один из критериев истечения срока.