我们已经配置了连续运行的Web作业,以便在将新消息添加到队列时被触发。但是有时它不会被触发,并且如果重新启动Web作业,它将开始处理队列中的消息,有时Web作业要花10到15分钟才能被触发。
复制步骤当存储队列中有新消息时,直到我们重新启动Web作业,Web作业才会选择该消息。配置Web作业以从队列中触发向队列添加消息
预期行为预期的行为是应该立即触发Web作业。
实际行为在重新启动Webjob之前,不会触发Web作业,有时,它需要10到15分钟才能自动触发。
您可以直接将Azure Service Bus触发器用于Azure功能。一旦添加了新消息,它将被触发。
这是C#的示例。
[FunctionName("ServiceBusQueueTriggerCSharp")]
public static void Run(
[ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")]
string myQueueItem,
Int32 deliveryCount,
DateTime enqueuedTimeUtc,
string messageId,
ILogger log)
{
log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
log.LogInformation($"EnqueuedTimeUtc={enqueuedTimeUtc}");
log.LogInformation($"DeliveryCount={deliveryCount}");
log.LogInformation($"MessageId={messageId}");
}
如果要使用其他开发语言的示例。这是samples。
参考: