【发布时间】:2020-11-18 20:39:35
【问题描述】:
我有两个服务总线队列和 Azure 服务总线队列触发器。
该函数从队列中读取 1000 条消息并将它们转发给另一个(用于测试) 发布到 Azure(计划消费)时,即使队列中只有 1000 条消息,我也会获得 1030 多个函数命中。我认为这与函数实例的数量有关。
问:如何对 1 个函数实例只处理 1 个唯一消息一次?
[FunctionName("Function1")]
public static async Task Run([ServiceBusTrigger("export-queue",
Connection = "Connection")]
string myQueueItem, ILogger log)
{
log.LogInformation($"Message: {myQueueItem}:{DateTime.Now}");
Thread.Sleep(2000);
queueClient = new QueueClient(ServiceBusConnectionString, QueueName);
var message = new Message(Encoding.UTF8.GetBytes(myQueueItem));
await queueClient.SendAsync(message);
await queueClient.CloseAsync();
}
【问题讨论】:
标签: azure-functions azureservicebus azure-servicebus-queues azure-function-app azure-servicebus-topics