[Web Job在服务队列上添加新消息时不起作用

问题描述 投票:1回答:1

我们已经配置了连续运行的Web作业,以便在将新消息添加到队列时被触发。但是有时它不会被触发,并且如果重新启动Web作业,它将开始处理队列中的消息,有时Web作业要花10到15分钟才能被触发。

复制步骤当存储队列中有新消息时,直到我们重新启动Web作业,Web作业才会选择该消息。配置Web作业以从队列中触发向队列添加消息

预期行为预期的行为是应该立即触发Web作业。

实际行为在重新启动Webjob之前,不会触发Web作业,有时,它需要10到15分钟才能自动触发。

azure azure-webjobs
1个回答
0
投票

您可以直接将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

参考:

Compare Functions and WebJobs

Azure Service Bus trigger for Azure Functions

© www.soinside.com 2019 - 2024. All rights reserved.