2016-07-25 23 views
0

Ich bin ein Neuling mit Aure Queue service. Laut der examples, die ich gesehen habe, gibt es 2 Methoden zum Abrufen von Nachrichten, getMessage und getMessages. Die Worker-Rolle hat eine while-Schleife, die versucht, eine oder mehrere Nachrichten pro Zyklus abzurufen. Wenn keine Nachrichten vorhanden sind, schläft es für einen Moment. Für Warteschlangen, die nicht viele Nachrichten enthalten, ist dies keine gute Lösung, da Sie für viele Warteschlangenaufrufe zahlen müssen, die einen Nullwert zurückgeben. Ist es eine Möglichkeit, Aure Queue service als Producer-Consumer zu verwenden, wobei die Worker-Rolle durch einen Trigger ausgelöst wird, nachdem die Warteschlange eine Nachricht erhalten hat? Oder ist es eine Möglichkeit, ein Ereignis in der Worker-Rolle zu definieren, auf das die Warteschlange zugreifen kann eine neue Nachricht erhalten? Kann Azure functions verwendet werden?azure queue service ruft performance

Antwort

1

Das Azure WebJobs SDK bietet ein solches Muster (triggert eine Funktion, die auf einer neuen Nachricht ausgeführt wird) - https://github.com/Azure/azure-webjobs-sdk, aber es ist immer noch als While-Schleife implementiert, es ist einfach eleganter zu arbeiten.

Im Wesentlichen gibt es keine Push Mechanismus für Azure Storage Queues. Alles ist ein Pull, SDK oder kein SDK. Greifen Sie einfach einen Bucket von Nachrichten für jeden Lauf. 32 Nachrichten statt einer. Be chunky, nicht chatty.

Referenzierung meine Antwort auf eine ähnliche Frage für die wirklich großen Azure Storage Queues Videos von Mark Simms, dass es Links: https://stackoverflow.com/a/38036911/4148708