提问人:AsyaK 提问时间:10/30/2023 最后编辑:ESGAsyaK 更新时间:10/30/2023 访问量:48
MassTransit 如何消耗 CPU [已关闭]
How does MassTransit consumes CPU [closed]
问:
我正在使用 https://masstransit.io/ 库,发送 2000 条消息平均使用 100% CPU 15 分钟。
首先,我以为这是由于消息请求的工作,但后来我尝试了没有任何工作,只是发送了 2000 条消息就得到了相同的结果。
这正常吗? MassTransit 如何消耗 CPU?
消息是使用调用以下方法的 Azure 函数发送的:
public async Task DoJob(string contextName, RequestDto request)
{
using var provider = _publishEndpointProvider.Build();
var publishEndpoint = provider.Get();
foreach (var reference in references)
{
await publishEndpoint.Publish(new ProcessMessage
{
MessageCorrelationId = Guid.NewGuid().ToString(),
MessageCreationTimestamp = DateTimeOffset.UtcNow,
ContextName = contextName,
StartDate = request.StartDate,
EndDate = request.EndDate,
Reference = reference
}).ConfigureAwait(false);
}
}
非常感谢, AK型
答:
1赞
Chris Patterson
10/30/2023
#1
不要等待每个调用都循环发布,您基本上是在为代理确认消息创建大量等待。这是很多死时间,除了等待经纪人之外什么都不做。
不知道你的功能背后是什么,但我知道它不可能是好的。事实上,我真的知道这不可能是好的。事实上,这可能很可怕。我建议使用此示例作为如何在 Azure 函数中使用 MassTransit 发布消息的指南。
Build
祝你好运!
评论
0赞
AsyaK
10/31/2023
非常感谢您的回复。我将测试这些并分享结果。
评论