2017-02-16 4 views
0

Ich habe derzeit einen Webjob, der ausgeführt wird, wenn der Benutzer bestimmte Aktionen ausführt. Wenn der Webjob ausgeführt wird, kann er keine neue Anforderung akzeptieren, bis er mit dem aktuellen Prozess fertig ist. Ist es möglich, Webjob gleichzeitig auszuführen, dh einen Job für mehrere Clients gleichzeitig verarbeiten zu können?Kann azure Webjob gleichzeitig ausgeführt werden?

Antwort

3

Absolut. Wie aber lösen Sie Ihren WebJob aus, wenn ein Benutzer eine bestimmte Aktion ausführt? Wenn Sie eine Methode in Ihrem WebJob über einen QueueTrigger auslösen, der auf eine Nachricht in einer Azure Storage Queue wartet, können mehrere Threads gleichzeitig Nachrichten verarbeiten. Sie können etwas Ähnliches auch mit Service Bus-Warteschlangen tun.

Überprüfen Sie die Dokumente in der parallel execution section here.

+0

Im Moment triggerring es über Web-Job REST API/Post-Aufruf, im Annahme, dass wird nicht eine richtige Art, es richtig zu machen? – Gio

+0

Das ist eine Möglichkeit, es zu tun. Es gibt jedoch noch weitere Vorteile beim Verwenden von Warteschlangen, z. B. die Möglichkeit, eine Nachricht zu leasen und als abgeschlossen zu markieren, wenn die Verarbeitung erfolgreich abgeschlossen wurde (für Speicherwarteschlangen) oder dasselbe mit einem PeekLock-Empfangsmodus für Service-Bus-Warteschlangen zu erreichen. Wenn Ihre Webjob-Methode während der Verarbeitung ausfällt oder abstürzt, können Sie versuchen, die Verarbeitung erneut durchzuführen. Wenn Sie dies mit einem RESTful Web Service-Aufruf getan haben und ein Absturz auftritt, sind Sie * @ & # Pech gehabt. –

+0

Ein weiterer Vorteil der Verwendung von Warteschlangen für die Kommunikation besteht darin, dass Nachrichten in Ihrer Warteschlange akkumuliert werden, wenn der Webjob vorübergehend unterbrochen wird (zu Wartungszwecken oder aufgrund eines Absturzes) und verarbeitet wird, wenn der Webjob wieder online ist. Dies wird als zeitliche Entkopplung bezeichnet. Eine weitere: Wenn Ihre Web-App geknallt wird und versucht, eine Reihe von Web-Service-Aufrufe zu einem rechenintensiven Web-Job-Prozess zu machen, können Sie den Web-Job überschwemmen. Bei einer Nachrichtenwarteschlange sichert sich die Arbeit in der Warteschlange und wird verarbeitet, wenn der Web-Job auffährt. Dies schafft Elastizität, um Spikes in Ihrer Anwendung zu behandeln. –

Verwandte Themen