gpt4 book ai didi

azure - Webjob 导致 ASP.NET core 出现性能问题

转载 作者:行者123 更新时间:2023-12-02 06:32:17 25 4
gpt4 key购买 nike

我创建了一个 .NET CORE 控制台应用程序,并作为连续模式 Webjob 上传到 Azure 应用程序 (ASP.NET Core)。当webjob运行时,webapp响应API请求非常慢(请求时间上升到几秒)。

Web作业代码

static void Main(string[] args)
{
queueClient.RegisterMessageHandler(
async (message, token) =>
{

// Process the message
// Complete the message so that it is not received again.
// This can be done only if the queueClient is opened in ReceiveMode.PeekLock mode.
await queueClient.CompleteAsync(message.SystemProperties.LockToken);


},
new MessageHandlerOptions(exce => {
return Task.CompletedTask;
})
{ MaxConcurrentCalls = 1, AutoComplete = false });
//Console.ReadKey();
while (true) ;
}

处理消息操作需要几秒钟。

来自 SCM 控制台 enter image description here

请求时间 enter image description here

最佳答案

while(true) ; 会固定 CPU,所以我建议您不要这样做。

查看队列消息处理示例,了解如何实现消息处理的正确方法:https://github.com/Azure/azure-webjobs-sdk/wiki/Queues

您必须将 Main 更改为:

static void Main(string[] args)
{
JobHost host = new JobHost();
host.RunAndBlock();
}

然后您可以在另一个文件中创建消息处理程序:

public static void ProcessQueueMessage([QueueTrigger("logqueue")] string logMessage, TextWriter logger)
{
logger.WriteLine(logMessage);
}

Microsoft.Azure.WebJobs 的 3.0.0 预览版库支持.NET Standard 2.0,因此可以与.NET Core 2.0项目一起使用。

如果您想自己实现,您可以查看 Webjobs SDK 源代码以获取示例:https://github.com/Azure/azure-webjobs-sdk/blob/dev/src/Microsoft.Azure.WebJobs.Host/JobHost.cs

关于azure - Webjob 导致 ASP.NET core 出现性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46724929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com