Пошаговый параллелизм Azure Service Fabric Reliable Actors описан в официальной документации. Если я правильно понял, Reliable Services могут обслуживать несколько запросов одновременно. Допустим, у меня есть надежный сервис с одним методом, привязанным к процессору. Как и ожидалось, метод является асинхронным, поэтому служба может обрабатывать несколько запросов. Мой локальный кластер размещен на 2-ядерной машине, когда я вызываю Службу из 2 разных клиентов консольного приложения, ЦП используется на 100%, как и ожидалось. Таким образом, нет причин обрабатывать более двух запросов одновременно. Как я могу ограничить это? А если я перейду на настоящий кластер, я ничего не знаю о машине, на которой размещен Сервис, что мне тогда делать?
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;
}