Как завершить время, если оно не заканчивается в течение определенного срока?

Скажем, есть ли у нас цикл while в BPEL

<while>...<while>

Можно ли прекратить его, если он не завершится в течение 10 секунд?


person william007    schedule 10.07.2012    source источник


Ответы (1)


Нет, в то время как действия не могут объявить тайм-аут. Вместо этого вы могли бы сделать следующее:

  • используйте действие <pick> в цикле и добавьте элемент <onAlarm>, который ждет 10 секунд. Но не гарантирует, что любая обработка сообщения не должна занимать более 10 секунд.
  • добавьте <scope> с <wait> в свой цикл и добавьте обработку в обработчик событий с элементом onAlarm, который запускается немедленно. Если не ошибаюсь, обработчик события завершается вместе с областью действия. Это происходит, когда действие ожидания возвращается, поэтому на самом деле все действия в обработчике событий также должны быть завершены. Я никогда не пробовал это, поэтому я не уверен, что это работает.
person vanto    schedule 10.07.2012