CloudQueueMessage - механизм повтора
Я использую Azure Storage Queues для управления процессом обработки моих товаров. Задачи попадают в очередь, обрабатываются фоновым сервером и удаляются из очереди.
В некоторых случаях обработка некоторой задачи не удалась (из-за переменных среды - чего нельзя ожидать). В этом случае я хочу повторить попытку выполнения задачи снова. Если на этот раз обработка прошла нормально, все хорошо - просто удалите ее из очереди. В противном случае удалите его из очереди и запишите какое-нибудь сообщение в журнал.
Итак, я ищу какой-то механизм для добавления метаданных к элементу CloudQueueMessage. Я подумал о новых метаданных под названием "повторные попытки". Который будет фишкой. Но я не вижу никакой возможности добавить метаданные в элемент очереди.
Другой вариант - обернуть мой элемент классом Wrapper, который добавит свойство 'retries'. После удаления элемента из очереди повторно вставьте его с измененным значением "повторных попыток". Это должно работать, но не элегантное решение.
Каковы ваши рекомендации?
1 ответ
Вам не нужно. Когда элемент был выбран вашей рабочей ролью из очереди, он фактически все еще там, но помечен как невидимый. По умолчанию он невидим в течение 30 секунд. Вы можете установить видимость, используя "visibilityTimeout", хотя. Элемент остается в очереди, пока вы его не удалите.