¿Cómo implementar un servidor asíncrono de Python grpc?
Necesito llamar a una tarea de apio para cada solicitud de GRPC y devolver el resultado. En la implementación GRPC predeterminada, cada solicitud se procesa en un subproceso separado de un conjunto de subprocesos.
En mi caso, se supone que el servidor procesa ~ 400 solicitudes en modo por lotes por segundo. Por lo tanto, una solicitud puede tener que esperar 1 segundo para obtener el resultado debido al procesamiento por lotes, lo que significa que el tamaño del conjunto de subprocesos debe ser mayor que 400 para evitar el bloqueo.
¿Se puede hacer esto de forma asíncrona? Muchas gracias.
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)