Как реализовать асинхронный сервер Python GRPC?

Мне нужно вызывать задачу сельдерея для каждого запроса GRPC и возвращать результат. В реализации GRPC по умолчанию каждый запрос обрабатывается в отдельном потоке из пула потоков.

В моем случае сервер должен обрабатывать ~ 400 запросов в пакетном режиме в секунду. Таким образом, один запрос может ждать 1 секунду для результата из-за пакетной обработки, что означает, что размер пула потоков должен быть больше 400, чтобы избежать блокировки.

Можно ли это сделать асинхронно? Большое спасибо.

class EventReporting(ss_pb2.BetaEventReportingServicer, ss_pb2.BetaDeviceMgtServicer):
  def ReportEvent(self, request, context):
    res = tasks.add.delay(1,2)
    result = res.get() ->here i have to block
    return ss_pb2.GeneralReply(message='Hello, %s!' % result.message)

Ответы на вопрос(2)

Ваш ответ на вопрос