2017-01-18 5 views
0

Ich habe einen Dienst, der als Azure-Webjobs ausgeführt wird und nach Bedarf skaliert, es ist ein langwieriger Prozess, der einige Stunden für jede Nachricht in der Warteschlange dauern kann. Es funktioniert gut, das einzige Problem ist, dass es für einen Rest-Endpunkt auf eine dritte Partei angewiesen ist, die aufgrund verschiedener Probleme nicht verfügbar sein kann.Azure WebJobs Sleep

Mein Code fängt diesen Fehler und ich brauche es für 10-15seconds zu warten, bevor es wieder versucht, und ich

Thread.Sleep(10000); 

Dies funktioniert lokal, aber wenn in Azure als webjob scheint es, alle Instanzen zu pausieren der Webjob nicht nur der, der warten muss.

Irgendwelche Ideen, warum? Jede Instanz ist auf einem Unterschied thread Ich glaube, aber ich bin relativ neu in WebJobs, so kann nicht 100% sicher sein, so einige Hinweise dazu wäre auch gut.

+0

Haben Sie versucht, async/await-Methode zu verwenden? – Thomas

Antwort

0

Wenn Sie den App Service Plan horizontal skalieren, werden alle Instanzen des WebJob unabhängig ausgeführt. Wenn sie alle gleichzeitig schlafen, kann es sein, dass der Ruhe-Endpunkt in dieser Zeit im Allgemeinen nicht verfügbar ist und alle zum Schlafen gebracht werden.

+0

Ja, ich hätte das auch gedacht, aber dann habe ich getestet und festgestellt, dass einer der Jobs den Endpunkt nicht verwendete, da er mit den Daten beschäftigt war und der Endpunkt offline war. Also ein anderer Job war Thread, Sleep und sie alle stoppten den Job Das war knirschen weg, es ist Daten und damit meine Sorge und diese Frage. Ist das sinnvoll? Es ist spät hier ... –

Verwandte Themen