2016-06-21 3 views
0

Ich lerne azurblauen Webjob und Warteschlange, in der Firma, für die ich arbeite, berechnen wir jede Nacht 7 Millionen Datensätze. Die Berechnung ist ziemlich einfach, aber die Menge ist ziemlich groß (wie dort rund 7 Millionen Datensätze in db).Ist es möglich, das Limit 32 zu umgehen, wenn azure webjob und queue verwendet werden?

Während das Unternehmen nach Azure wechselt, frage ich mich, ob eine azurblaue Warteschlange dafür verwendet werden kann? Theoretisch kann ich einen Code erstellen, um die Warteschlange zu füllen (da es eine Größenbeschränkung von 64 KB gibt, denke ich, dass ich 10 Einträge in eine Nachricht schreiben kann, , also wird die Gesamtnachricht wie 700k sein?). Dann werde ich einen Webjob haben, der von der Warteschlange ausgelöst wird und die Berechnung vornimmt.

Allerdings gibt es nach here ein maximales Limit von 32 beim Abrufen von Nachrichten.

Bedeutet das, dass maximal 32 Webjobs gleichzeitig ausgelöst werden? Wenn das der Fall ist, 700000/32 = 21875, bedeutet das, dass es eine ganze Weile dauern wird.

Gibt es eine Möglichkeit, mehr Web-Job gleichzeitig als die 32-Grenze laufen zu lassen?

Antwort

0

Sie können viel mehr Nebenläufigkeit erhalten, indem Sie BatchSize und NewBatchThreshold kombinieren. Der beste Weg, um es zu betrachten, ist, dass das Parallelitätslimit die Summe der beiden Flags ist. Wenn Sie also BatchSize bei 32 belassen und NewBatchThreshold auf 100 setzen, ist der Parallelitätsgrenzwert 132.

Weitere Details siehe https://github.com/Azure/azure-webjobs-sdk/issues/628.

Verwandte Themen