Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

420
Vistas
Canales de Django "ERROR Y de N canales por encima de la capacidad en suscripciones grupales"

Estoy haciendo pruebas de carga con mi aplicación Django proporcionando suscripciones GraphQL usando canales Django y una capa de canales redis ( django , graphene-django , channels , graphene-subscriptions , channels-redis ). Como servidor ASGI, estoy usando daphne en este momento. Uso nginx como proxy. La periodicidad con la que el backend publica mensajes a través de las suscripciones de GraphQL depende de la periodicidad de los mensajes que el backend recibe a través de MQTT. Estoy aumentando la periodicidad con la que un proveedor de datos externo publica mensajes al corredor MQTT, es decir, la periodicidad con la que el backend tiene que procesar estos mensajes y publicar mensajes a través de suscripciones de GraphQL. Estoy enfrentando el siguiente error:

 2020-03-11 08:33:58,464 ERROR 2 of 12 channels over capacity in group subscriptions

Parece que este problema es causado porchannels_redis . ¿Puedo escalar la infraestructura para solucionar este problema?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La capacidad predeterminada es de 100 mensajes y el tiempo de caducidad predeterminado de los mensajes es de 60 segundos. Entonces, si el canal nunca se lee dentro de estas limitaciones de capacidad/tiempo, se llenará.

Una de las razones por las que un canal puede llenarse es cuando la conexión nunca se cierra correctamente. En este caso, el canal permanecerá en el grupo y eventualmente se llenará.

Una forma de mitigar esto es tener suficiente capacidad y un breve tiempo de espera. Puede modificar la configuración en los ajustes de Django de la siguiente manera:

 CHANNEL_LAYERS = { "default": { "BACKEND": "channels_redis.core.RedisChannelLayer", "CONFIG": { "hosts": REDIS_URL, # or where your redis server lives "capacity": 1500, # default 100 "expiry": 10, # default 60 } } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda