Повторите и макс попытки с конечным автоматом

Я пытаюсь создать конечный автомат, в котором я хочу создать функцию повторных попыток и максимальных попыток. Позвольте мне объяснить, пока у меня есть это: введите описание изображения здесь

От SAVED я хочу перейти к VALIDATED, хотя, если есть ошибка, он должен перейти в состояние AWAITING_VALIDATION. Через 3 минуты, попробуйте снова в состояние VALIDATED.

  1. Правильно ли настроен механизм повтора?
  2. После 3 попыток я хочу вернуться в состояние SAVED (и остановить машину состояния). Можно ли сделать это в необычном виде (например, с помощью пружинного автомата) или мне нужно делать это вручную, используя какой-то кэш?

Спасибо за вашу помощь

1 ответ

Решение

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

Вы близки, и вы упустили некоторые вещи (я бы сказал трюки), чтобы это произошло. Ответ заключается в использовании extended state variables добавить память в машину. Эти переменные обычно используются, чтобы ограничить количество необходимых значений, чтобы представить, что машина должна делать. Вам нужно 3 цикла, и вы, вероятно, могли бы создать больше состояний для представления каждого цикла и перехода (с определенными элементами защиты) к ним по мере необходимости. Однако это просто взорвет конфигурацию состояния, если вам нужно больше циклов, таких как 10, 20 или 100+.

Я создал пример в ssm-sample3, который показывает, как extended state variables и разные guards а также actions может быть использован для управления этим конкретным потоком.

К сожалению, в токе есть ошибка 1.1.1.RELEASE что мешает вам напрямую перейти от AWAITING_VALIDATION в HAS_ERROR соединение и петля, пока вы не остановитесь в VALID используя анонимный переход с защитой (поэтому образец имеет пустышку TMP состояние, которое не нужно с 1.2.x).

Вероятно, это то, что я хотел бы добавить в качестве примера или часто задаваемых вопросов к нашим ссылкам.

Лемми знает, поможет ли это.

Другие вопросы по тегам