Как реализовать асинхронный сервер 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)