Почему запланированная задача моего облачного сервиса не работает? - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть задача облачного сервиса, которая выполняется каждые 5 минут между запланированными часами. Я столкнулся с проблемой зависания экземпляра роли в какой-то момент, и я подозреваю, что это связано с одной работой, которая может длиться вечно, чтобы сделать экземпляр роли занятым.

Я думал о добавлении таймаута, чтобы остановить задачу taht если это займет больше времени для обработки. Однако, когда эта задача выполняется локально с эмулятором Azure, она работает нормально, но при развертывании в Azure она задерживает время ожидания, даже не выполняя ни одного куска кода.

Ниже приведен базовый c код для справки

protected void ProcessChunk(IEnumerable<SparkPostEmailUpdateQueueItem> chunk)
        {
            itemsInChunk = 0;

            // there are a number of batch's in a chunk. Process each and wait for them all to finish
            var work = chunk.Select(c => ProcessEventBatch(c))
                .ToArray();

            if(!Task.WaitAll(work, 1800000))
            {
                logger.Trace("Timeout elpased for SparkPost event batch");
            }

            NumberOfChunksProcessed++;
            ExecuteItemsProcessed += itemsInChunk;

Ниже приведены azure журналы enter image description here

...