Блокирует ли повторное нарушение MassTransit потребление других сообщений? - PullRequest
1 голос
/ 07 января 2020

С учетом MassTransit настроен параллелизм 1 и имеют политику повторов в течение 1 часа для сообщений с ошибками и очередь начинается с 2 сообщений и , использующие первое сообщение, терпят неудачу:

Есть ли MassTransit 1) подождите час, прежде чем пытаться повторить первое сообщение, пока второе сообщение остается в очереди * +1009 * или 2) подождать час, прежде чем повторить попытку первого сообщения, а затем повторить попытку второго сообщения?

1 Ответ

1 голос
/ 08 января 2020

Простой ответ: 1.

Существует два способа повторить попытку с помощью MassTransit.

.UseMessageRetry(r => r.???);

Это находится в памяти и сохраняет сообщение заблокированным. Он также является активным потреблением сообщений, поэтому, если используется счетчик предварительной выборки или предел параллелизма, он будет продолжать учитываться до этого предела.

.UseScheduledRedelivery(r => r.???);

Это перепланирует сообщение для доставки с использованием планировщика (который может быть поддерживается брокером или через Quartz. NET). Он не блокирует последующие сообщения и ставит сообщение в очередь для будущей доставки.

Оба задокументированы здесь .

...