Вам нужно будет завершить текущую сагу и опубликовать событие (или отправить его в ту же очередь, используя Send
), которое создаст новый экземпляр саги.В этом случае вам также понадобится использовать репозиторий саги, который будет правильно блокировать корреляционный идентификатор, чтобы вы не обрабатывали два сообщения одновременно для одной и той же корреляции, которая, скорее всего, найдет существующий экземпляр до того, как он будетудален.
Вы НЕ МОЖЕТЕ сделать это в одном обработчике сообщений, хотя, подумав об этом, зачем вам нужно завершать работу, а не возвращать текущий экземпляр саги обратно в исходное состояние?
Кроме того, вы можете рассмотреть возможность использования отдельного идентификатора корреляции для последующего startMsg, чтобы вы могли отслеживать каждую «попытку» завершения.В противном случае вы не будете знать, будут ли запоздалые сообщения из предыдущей попытки сбивать с толку фактическое состояние текущей попытки - поскольку у вас не будет возможности их различить.