Мне нужно сгенерировать довольно много отчетов, и отчет может занять около 5 минут, большой объем данных, много разных источников.Azure Storage Queue - долгое время для обработки
Клиент отправляет сообщения в очередь хранения лазурных изображений. Существуют рабочие роли, которые обрабатывают сообщения и генерируют отчеты.
Если я хочу увеличить это, допустим, у меня 10 рабочих ролей, которые будут обрабатывать сообщения из очереди и генерировать отчеты. Тогда я буду добавлять сообщения в очередь, как это:
- сообщение 1: отчеты процесса от 1 - 5
- сообщение 2: отчеты процесса от 6 - 11 ........
- сообщение 10: отчеты о процессах от 50 до 55 (может быть неточным)
Если моя рабочая роль 1 примет первое сообщение и поместит блокировку, но процесс займет 5 минут, блокировка будет истечет, и сообщение будет снова видимым в очереди, так что рабочая роль 2 возьмет его и начнет процедуру ssing it ... и т. д.
Как я могу избежать того, что потребление сообщения очереди выполняется только один раз, имея в виду, что задача длинная?