Повторение вызовов RPC не добавляет новые объекты в очередь.C#

Место общения программистов C#
Ответить
Anonymous
 Повторение вызовов RPC не добавляет новые объекты в очередь.

Сообщение Anonymous »

Я пытаюсь реализовать простую службу gRPC, в которой клиент может ставить задачу на сервер в очередь.
Я решил протестировать несколько вызовов, когда клиент отправляет несколько запросов, но количество задач равно застрял на 1. Чтобы отладить больше, я добавил простой счетчик, который должен увеличиваться при каждом вызове метода. По какой-то причине оба они застряли на 1, но это показывает, что метод вызывался несколько раз. Я неправильно понимаю, как работает протокол gRPC?
Клиентский код
public async Task SendTaskToSchedulerAsync()
{
using var channel = GrpcChannel.ForAddress(ClientData.schedulerAddress, new GrpcChannelOptions
{
HttpHandler = _handler
});
var client = new Scheduler.SchedulerClient(channel);
var task = new gRPCreq_Task { Type = TaskType.TtGeneratePassword, NLoops = 30, WorkTime = 20 };
try
{
for(int i = 0; i < 10; i++)
{
var response = await client.C_SendTaskAsync(task);
Console.WriteLine($"Server responded with: {response.TaskStatus}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error communicating with the server: {ex.Message}");
}
}

Server Code:

public override async Task C_SendTask(gRPCreq_Task request, ServerCallContext context)
{

_tasks.Enqueue(request);
counter++;
Console.WriteLine($"Queue size: {_tasks.Count}");
Console.WriteLine($"Counter {counter}");
return await Task.FromResult(new gRPCres_TaskStatus { TaskStatus = TaskStatus.TsTaskAccepted });
}

Server Output:
Queue size: 1
Counter 1
Queue size: 1
Counter 1
Queue size: 1
Counter 1
Queue size: 1
Counter 1
Queue size: 1
Counter 1
Queue size: 1
Counter 1
Queue size: 1
Counter 1
Queue size: 1
Counter 1
Queue size: 1
Counter 1
Queue size: 1
Counter 1


Подробнее здесь: https://stackoverflow.com/questions/791 ... to-a-queue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»