Я использую потоковый сервер nats и stan.client в качестве клиентской библиотеки.
Мой подписчик может выполнять долгую работу.Иногда они превышают время ожидания подтверждения по умолчанию (30 секунд).Поэтому я пытаюсь вручную подтвердить свое сообщение следующим образом:
StanSubscriptionOptions sOpts = StanSubscriptionOptions.GetDefaultOptions();
sOpts.ManualAcks = true;
EventHandler<StanMsgHandlerArgs> msgHandler = (sender, args) =>
{
args.Message.Ack();
Thread.Sleep(40000);
};
sOpts.DurableName = "my-durable";
var s = c.Subscribe(subject, qGroup, sOpts, msgHandler);
Я устанавливаю подтверждение вручную, а затем подтверждаю сообщение как первое действие перед моей работой.
В этом кодеподписчик делает работу за 40сек.Если я отправляю 2 сообщения, второе всегда доставляется.
В чем моя ошибка?