AFAIK, максимально допустимое время истечения для сообщения очереди Azure составляет 7 дней, что также является значением по умолчанию.
Ядовитая очередь также является обычной очередью с именем {original-queue-name}-poison
. Например, если Azure Webjobs SDK обрабатывает сообщение очереди, превышающее максимальное количество попыток, то соответствующее сообщение будет перемещено в опасную очередь, и этот процесс обрабатывается SDK.
Насколько я понимаю, вам нужно явно обрабатывать подозрительные сообщения вместо того, чтобы постоянно сохранять сообщения в опасной очереди. Подробности, за которыми вы можете следить Как обращаться с ядовитыми сообщениями . Кроме того, вы можете выбрать другие службы очереди сообщений в соответствии с вашими требованиями.
UPDATE:
Как changelog.txt об изменениях в 9.0.0:
Очереди: добавлена поддержка бесконечного TTL для сообщений в очереди.
Вы можете указать параметр timeToLive
при добавлении сообщения очереди следующим образом:
queue.AddMessage(new CloudQueueMessage($"hello world-{DateTime.UtcNow}"),timeToLive:TimeSpan.MaxValue);
В соответствии с вашими требованиями, вы можете использовать метод ручной обработки опасных сообщений, чтобы проверить dequeueCount
и явно добавить текущее сообщение очереди в опасную очередь программным путем.
Примечание: Максимальное количество попыток перед отправкой сообщения очереди в очередь отравлений по умолчанию равно 5, его можно изменить с помощью config.Queues.MaxDequeueCount
.
Или вы просто используете автоматическую обработку опасных сообщений, после чего вы можете запустить соответствующую очередь опасных сообщений и добавить сообщение очереди в свою пользовательскую очередь опасных сообщений с бесконечным TTL.