Как я могу создать триггер очереди, который может принимать коллекции элементов из очереди в качестве триггера.
Мой текущий триггер очереди выглядит как
public static async Task Run(
[QueueTrigger("socmapping")]
SocMapping myQueueItem,
[Queue("socmapping-invalid")]
IAsyncCollector<SocMapping> invalidSocMappings,
TraceWriter log,
[Queue("projectedavfeedforsocmapping")]
IAsyncCollector<ProjectedVacancySummary> projectedVacancySummary,
[DocumentDB("AVFeedAudit", "AuditRecords", ConnectionStringSetting = "AVAuditCosmosDB")]
IAsyncCollector<AuditRecord<object, object>> auditRecord)
но я хочу что-то вроде (которое может взять количество элементов
public static async Task Run(
[QueueTrigger("socmapping")]
***List<SocMapping> myQueueItem,***
[Queue("socmapping-invalid")]
IAsyncCollector<SocMapping> invalidSocMappings,
TraceWriter log,
[Queue("projectedavfeedforsocmapping")]
IAsyncCollector<ProjectedVacancySummary> projectedVacancySummary,
[DocumentDB("AVFeedAudit", "AuditRecords", ConnectionStringSetting = "AVAuditCosmosDB")]
IAsyncCollector<AuditRecord<object, object>> auditRecord)
Поскольку я хочу выполнить пакетную обработку элемента очереди, а также функцию, она должна запускаться только в том случае, если какой-либо элемент присутствует в очереди. Хотите взять (10) из очереди и обработать функцию триггера.
Как я могу этого добиться?





Это невозможно. Ваша функция Azure будет запускаться один раз для каждого сообщения в очереди. Некоторые типы триггеров поддерживают пакетные параметры (например, концентраторы событий или Cosmos DB), но триггер очереди не входит в их число.
Спасибо Михаил. Чтобы решить эту проблему, я создал коллекцию объектов и храню их в очереди, а не по одному элементу.