Я использую MassTransit (и RabbitMq для очередей) для выполнения последовательной обработки каждого сообщения, которое включает в себя несколько шагов.MassTransit - где хранить состояние между повторами
Я хочу, чтобы иметь возможность хранить информацию о состоянии обработки где-то в IConsumeContext<MyMessage>
, которая будет связана с каждым конкретным сообщением, так что, например, если обработка сообщения завершится с ошибкой на шаге 2, на следующей попытке я продолжу с шага 2, а не повторять шаг 1 снова.
Возможно ли это?
Некоторые возможные способы, которые я вижу, это изменить само сообщение, но я не знаю, является ли это стандартным способом делать что-то.
Также есть сообщение Headers
, но я не уверен, для чего это.
Кто-нибудь сделал это раньше?
UPDATE:
Я мог бы просто использовать try/catch
блоки с петлями и задержать там внутри тоже, но я не знаю, если это было бы лучше, чтобы избежать этого.