Основная проблема, с которой вы столкнулись, заключается в том, что очереди не могут установить время ожидания видимости, превышающее 2 часа сегодня. Итак, вам нужен еще один механизм, чтобы указать, что активная работа ведется. Я бы предложил сдать в аренду. Для каждого файла, который вы обрабатываете, вы либо берете в аренду сам блоб, либо 0-байтовый маркерный блоб. Ваши работники просматривают доступные капли и пытаются взять их в аренду. Если они получают аренду, это означает, что она не обрабатывается, и они продолжают и обрабатывают. Если они отказываются от аренды, другой работник должен активно работать над этим.
Как только работник завершил обработку файла, он просто копирует файл в другой контейнер в хранилище больших двоичных объектов (или удаляет его, если хотите), чтобы он не сканировался снова.
Аренда - это действительно ваш единственный ответ, пока сообщения очереди не могут быть обновлены.
edit : Я должен уточнить, что причина, по которой аренда будет работать здесь, заключается в том, что аренда должна активно поддерживаться каждые 30 секунд или около того, поэтому у вас есть очень маленькое окно, в котором вы знаете, что кто-то умер или все еще работает над этим.