gpt4 book ai didi

c# - Service Fabric 可靠服务 : proccessing parallel request with CPU-bound methods

转载 作者:行者123 更新时间:2023-12-03 05:59:56 25 4
gpt4 key购买 nike

Azure Service Fabric 的 Reliable Actors 回合制并发在官方文档中进行了描述。如果我没猜错的话,Reliable Services 可以同时服务多个请求。假设我有一个具有单一 CPU 限制方法的可靠服务。正如预期的那样,方法是异步的,因此服务可以处理多个请求。我的本地集群托管在 2 核计算机上,当我从 2 个不同的控制台应用程序客户端调用服务时,CPU 按预期 100% 使用。所以没有理由同时处理 2 个以上的请求。我该如何限制这个?如果我转移到真正的集群,我对托管的机器服务一无所知,那么我该怎么办?

public async Task<bool> CpuBoundAsync(int value)

{
ServiceEventSource.Current.ServiceMessage(this,
"CPU-BOUND WORK IN PROGRESS");
int z;
await Task.Run(() =>
{
for (int i = 0; i < int.MaxValue; i++)
{
z++;
z--;
}
});

ServiceEventSource.Current.ServiceMessage(this,
"CPU-BOUND WORK COMPLETED");
return true;
}

最佳答案

并行请求的数量取决于设置和硬件,默认情况下您不能真正依赖并行性(或缺乏并行性)和执行顺序。

如果您真正需要将并发隔离为一次一次有序,您应该使用 IReliableQueue<>或其他Reliable Collections

向 Service Fabric 应用添加两项服务 - 一个将项目放入队列的前端和另一个获取并处理这些项目的服务。最好的部分是您仍然可以通过部署更多消费者来实现完全并行。

关于c# - Service Fabric 可靠服务 : proccessing parallel request with CPU-bound methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33659658/

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