如何创建队列触发器,该触发器可以将Queue中的项目集合用作触发器。
我当前的队列触发器看起来像
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)
但是我想要类似的东西(可以从Queue中获取 n 个项目)[下面的代码抛出异常,并说它是json数组]
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)并处理触发函数。
我该如何实现?
答案 0 :(得分:4)
这是不可能的。每个队列中的每条消息都会触发一次Azure函数。某些触发器类型支持批处理参数(例如,事件中心或Cosmos DB),但是队列触发器不是其中之一。