В моем контейнере хранится около 35 000 файлов BLOB-объектов. некоторые из них старше до развертывания функции, некоторые после развертывания приложения функции.
Вот моя подпись функции
public async Task Run([BlobTrigger("portal/{filePath}")]Stream blob, Uri uri,
IDictionary<string, string> metadata, string filePath, ILogger log)
{
log.LogInformation($"{filePath}\n Size: {blob.Length} Bytes");
// rest of the code
}
Насколько я понимаю, эта функция будет непрерывно обрабатывать все старые и новые файлы. Но когда я вижу этот журнал на портале Azure, вот что происходит.
- 2020-01-21T09: 02: 56.103 [Информация] Выполняется 'watch-portal-blob' (Succeeded, Id = 37cfaf56-3be2-4e6f-9e46-3558389daf4f)
- 2020-01-21T09: 04: 33 Никаких новых трасс за последние 1 мин.
- // больше отметок времени
- 2020-01-21T10: 51: 34 Нет новых следов за последние 108 мин.
- 2020-01-21T10: 52: 34 Нет новых следов за последние 109 мин ( s).
- 2020-01-21T10: 53: 34 За последние 110 минут не было никаких новых трасс.
- 2020-01-21T10: 54: 34 Сеанс потоковой передачи журнала закончилась из-за истечения времени ожидания 120 мин.
Произвольно обрабатывает несколько файлов, затем go переходит в состояние ожидания, а затем через несколько часов снова обрабатывает еще 20 файлов. Может кто-нибудь указать мне правильно настроить триггер BLOB-объекта для обработки всех существующих больших двоичных объектов, а также новых больших двоичных объектов без перерыва?
К вашему сведению: все мои большие двоичные объекты представляют собой простые XML файлы размером менее 20 КБ каждый. Все, что он делает - читает XML проверяет и сохраняет его в MongoDB. Если я запускаю это задание на локальном компьютере, через 1 минуту будет обработано не менее 50 файлов, поэтому 30 тыс. Файлов должны быть заполнены задолго до этого. В пятницу 17 января было около 35 тыс. Файлов, сегодня, 20 января, еще есть 32 тыс. Файлов (новые добавления около 2 тыс.). Это означает, что он обработал только 5 тыс. Файлов за 3 дня.