Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

437
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!