/ / Деактивиране на функцията Azure Multiple simultaneous trigger - node.js, azure, azure-storage, azure-functions, azure-storage-queues

Деактивиране на функцията Azure Multiple simultaneous trigger - node.js, azure, azure-storage, azure-functions, azure-storage-queues

Имам приложение Azure Function с 7 функции, написани в Node.js, разположени чрез Bitbucket CI и следното host.json-файл в основата на проекта:

{
"id": "...",
"queues": {
// retrieve only 1 queue message at a time
"batchSize": 1,
"maxDequeueCount": 1,
"newBatchThreshold": 0
}
}

Доколкото ми е известно, това трябва да гарантира, че само 1 функция, задействана от опашката, се задейства едновременно.

Въпреки това, ако поставям следното изявление в моята функция:

context.log(`Started processing at ${new Date()}`);

Все още имам няколко случая с точно същото начално време за 2 съобщения за опашката.

Имаш ли представа какво липсвам? Това е batchSize собственост, използвана за функция или опашка?

Отговори:

0 за отговор № 1

Ако търсите в документация на host.json, можете да видите, че batchSize е за функция (задание).

Тук е мястото, където Azure функции дърпа партидата, в слушател на опашката.

Има отделен слушател на опашката, създаден за връзка с QueueTrigger, така че batchSize е на функция. В този случай, тъй като имате 7 функции, които задействат от една и съща опашка, в отделни изпълнения на функциите може да имате едновременно обработване на 7 съобщения в опашката.

Опитах се, като напиша приложение за конзола webjobs, която има две функции, задействани от същата опашка. Виждах, че има два отделни обекта QueueListener (чрез GetHashCode), по една за всяка функция, слушайки едновременно тази опашка.

Защо искате да изключите едновременното изпълнение?