Использование событий и тайм-аутов в процессах BPEL
Асинхронным веб-службам обычно требуется много времени, чтобы вернуть ответ, и поэтому компонент службы процесса BPEL должен иметь возможность истекать по тайм-ауту или отказываться от ожидания и продолжать работу с остальной частью потока через определенное время. Вы можете использовать действие выбора, чтобы настроить поток BPEL либо на ожидание в течение определенного периода времени, либо на продолжение выполнения своих обязанностей. Чтобы установить период истечения времени, вы можете использовать действие ожидания. Для управления сообщениями могут использоваться события, особенно когда бизнес-процесс ожидает обратных вызовов от партнерских веб-служб.
События
BPEL поддерживает два типа событий:
Сообщения События
Эти события инициируются входящими сообщениями посредством вызова операции для типов портов.
Тревожные события
Эти события связаны со временем и запускаются либо через определенную продолжительность, либо в определенное время.
Однако часто бывает полезнее дождаться более одного сообщения, из которых будет только одно.
Тревожные события полезны, когда вы хотите, чтобы процесс ждал обратного вызова в течение определенного периода времени, например 15 минут.
Если обратный вызов не получен, поток процесса продолжается, как было задумано.
Полезно в слабо связанных сервисно-ориентированных архитектурах, где нельзя полагаться на постоянную доступность веб-сервисов.
Выбрать активность
У действия выбора есть 2 ветви -
onMessage - код в этой ветке равен коду для получения ответа до того, как был добавлен тайм-аут.
onAlarm - это условие имеет код на тайм-аут в одну минуту.
Ждать активности
Операция ожидания позволяет процессу ждать в течение заданного периода времени или до тех пор, пока не будет достигнут предел времени. Должен быть указан точно один из критериев истечения срока.