В некоторых случаях непрерывная веб-задача Azure не работает

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

Единственная информация об ошибках журнала, которую я, кажется, могу найти, - это job_log, в котором говорится:

Может ли кто-нибудь дать мне несколько идей о том, как отладить это, потому что у меня нет идей.

Мои основные веб-задания выглядят так:

и сообщение processqueue выглядит так:

 static void Main()
    {
         var host = new JobHost();

        var config = new JobHostConfiguration();
        config.Queues.MaxPollingInterval = new TimeSpan(0,0,0,30);
        config.Queues.MaxDequeueCount = 3;
        // The following code ensures that the WebJob will be running continuously
        host.RunAndBlock();
    }

Итак, у меня есть уловка во всем, поэтому я не понимаю, как это может потерпеть неудачу?

 public static void ProcessQueueMessage([QueueTrigger("importqueue")] string msg)
    {
        try
        {
            WorkerWebJobCore wwjc = new WorkerWebJobCore();
            wwjc.RunCore(msg, TableStorageAccessResources.ImportQueue,
                TableStorageAccessResources.TableStorageDataOneId,
                TableStorageAccessResources.TableStorageDataOnePassword);
        }
        catch (Exception e)
        {
            CommunicatorLog.Log.LogError("WebJobWorker","WebJobWorker","Error in processing queue message","ERRWJWF01");
        }
    }

Заранее спасибо.

Я предполагаю, что что-то не так с вашей очередью или с файлами в самом хранилище.


person Dennis C    schedule 15.11.2017    source источник


Ответы (2)


Похоже, он пытается удалить файлы, которых больше нет. А может что-то «побольше» удаляется.

Если присмотреться глубже, это также может быть проблемой в том, как вы развертываете свое веб-задание. Может есть разница иногда при развёртывании? Взгляните на это:

Веб-задание Azure - удаленный сервер вернул 404

https://github.com/Azure/azure-webjobs-sdk/issues/922

Сообщение Azure WebJob QueueTrigger не удаляется из очереди

https://github.com/Azure/azure-webjobs-sdk/issues/645

Очевидно, что использование Microsoft.Azure.Webjob версий ниже 2.0.0 делает невозможным получение полезного ответа. Когда я наконец попытался установить эту версию, он указал мне на проблемы с полезными сообщениями об ошибках.

person Alex AIT    schedule 15.11.2017

Проблемы были связаны с неправильными версиями dll в отношении того, с чем работает ядро ​​webjob

[15.11.2017 14:46:23> e553e5: ERR] Необработанное исключение: Microsoft.WindowsAzure.Storage.StorageException: удаленный сервер возвратил ошибку: (404) Не найдено. ---> System.Net.WebException: удаленный сервер возвратил ошибку: (404) не найдено. [15.11.2017 14:46:23> e553e5: ERR] в Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException [T] (HttpStatusCode ожидаемыйStatusCode, HttpStatusCode актуальныйStatceptionCode, HttpStatusCode актуальныйStatceptionCode, HttpStatusCode актуальныйStatceptionCode, HttpStatusCode актуальныйStatception_Code, Response_1 ex, OperationContext ctx) в c: \ Program Files (x86) \ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClassLibraryCommon \ Blob \ CloudBlob.cs: строка 3349 [15.11.2017 14:46:23> e553e5: ERR] в Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndGetResponse [T] (IAsyncResult getResponseResult) в c: \ Program Files (x86) \ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClassLibraryCommon \ Core \ Executor \ Line 29 [15.11.2017 14:46:23> e553e5: ERR] --- Конец трассировки стека внутренних исключений --- [15.11.2017 14:46:23> e553e5: ERR] в Microsoft.WindowsAzure.Storage .Core.Executor.Executor.EndExecuteAsync [T] (результат IAsyncResult) в c: \ Program Files (x86) \ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClassLibraryCo mmon \ Core \ Executor \ Executor.cs: строка 50 [15.11.2017 14:46:23> e553e5: ERR] в Microsoft.WindowsAzure.Storage.Blob.CloudBlob.EndDelete (IAsyncResult asyncResult) в c: \ Program Files (x86) \ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClassLibraryCommon \ Blob \ CloudBlob.cs: строка 1729 [15.11.2017 14:46:23> e553e5: ERR] в Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions . ‹> C__DisplayClass4.b__3 (IAsyncResult ar) в c: \ Program Files (x86) \ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClassLibraryCommon \ Core \ Util \ AsyncExtensions.cs: строка 114 [15.11.2017 14:46: 23> e553e5: ERR] --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- [15.11.2017 14:46:23> e553e5: ERR] в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess ( Задача задача) [15.11.2017 14:46:23> e553e5: ERR] в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) [15.11.2017 14:46:23> e553e5: ERR] в Microsoft.Azure.WebJobs.Host.Protocols.Per sistentQueueWriter_2_1.d__0.MoveNext () [15.11.2017 14:46:23> e553e5: ERR] --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- [15.11.2017 14:46: 23> e553e5: ERR] на Microsoft.Azure.WebJobs.Host. Timers.BackgroundExceptionDispatcher. ‹> C__DisplayClass1.b__0 () [15.11.2017 14:46:23> e553e5: ERR] в System.Threading.ThreadHelper.ThreadStart_Context (состояние объекта) [15.11.2017 14:46:23 > e553e5: ERR] в System.Threading.ExecutionContext.RunInternal (ExecutionContext executionContext, обратного вызова ContextCallback, состояние объекта, логическое preserveSyncCtx) [15.11.2017 14:46:23> e553e5: ERR] в System.Threading.ExecutionContext.Run (ExecutionContext контекст выполнения, обратный вызов ContextCallback, состояние объекта, логическое значение preserveSyncCtx) [15.11.2017 14:46:23> e553e5: ERR] в System.Threading.ExecutionContext.Run (ExecutionContext контекст выполнения, обратный вызов ContextCallback, состояние объекта) [11 / 15/2017 14:46:23> e553e5: ERR] в System.Threading.ThreadHelper.ThreadStart ()

person Dennis C    schedule 15.11.2017