Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

326
Visualizações
Los canales de Django no iniciarían el servidor redis usando CHANNEL_LAYERS

Estoy tratando de replicar el chat de Mikhail Andreev con los canales de Django publicados aquí:https://gearheart.io/blog/creating-a-chat-with-django-channels/

y cuando ejecuto el servidor: $ python3 ./manage.py runserver el servidor redis no se inicia. Aquí está el mensaje completo:

 Performing system checks... System check identified no issues (0 silenced). April 27, 2017 - 20:59:01 Django version 1.10.3, using settings 'multichat.settings' Starting Channels development server at http://127.0.0.1:8000/ Channel layer default (asgi_redis.core.RedisChannelLayer) Quit the server with CONTROL-C. 2017-04-27 20:59:01,278 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive 2017-04-27 20:59:01,279 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive 2017-04-27 20:59:01,282 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive 2017-04-27 20:59:01,282 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive 2017-04-27 20:59:01,283 - INFO - server - HTTP/2 support not enabled (install the http2 and tls Twisted extras) 2017-04-27 20:59:01,283 - INFO - server - Using busy-loop synchronous mode on channel layer 2017-04-27 20:59:01,284 - INFO - server - Listening on endpoint tcp:port=8000:interface=127.0.0.1 2017-04-27 20:59:01,294 - ERROR - server - Error trying to receive messages: Error 61 connecting to localhost:6379. Connection refused. Exception in thread Thread-1: Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 439, in connect sock = self._connect() File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 494, in _connect raise err File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 482, in _connect sock.connect(socket_address) ConnectionRefusedError: [Errno 61] Connection refused

Puedo resolverlo ejecutando el servidor redis desde una terminal diferente, sin embargo, eso es lo que se supone que deben hacer Django Channels en la configuración:

 redis_host = os.environ.get('REDIS_HOST', 'localhost') # Channel layer definitions # http://channels.readthedocs.org/en/latest/deploying.html#setting-up- a-channel-backend CHANNEL_LAYERS = { "default": { # This example app uses the Redis channel layer implementation asgi_redis "BACKEND": "asgi_redis.RedisChannelLayer", "CONFIG": { "hosts": [(redis_host, 6379)], }, "ROUTING": "multichat.routing.channel_routing", # We will create it in a moment }, }

Agradezco cualquier ayuda y consejo.

¡Muchas gracias!

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Consulte https://github.com/django/daphne#http2-support

Debes instalar Twisted pip install -U Twisted[tls,http2]

over 4 years ago · Santiago Trujillo Relatório

0

Django Channels no iniciará automáticamente Redis. Redis es un servicio separado, que ya debería estar ejecutándose en su máquina o en otro lugar. Channels confía en Redis para su backend como intermediario de mensajes.

De Redis :

Redis es un almacén de estructura de datos en memoria de código abierto (con licencia BSD), que se utiliza como base de datos, caché y agente de mensajes.

Debe seguir las instrucciones de instalación para Redis e iniciarlo usando:

 $ /path/to/redis-server

Su aplicación Django también debe estar configurada correctamente para usar Redis . También necesitará el paquete asgi_redis instalado en su entorno virtual de Python , si usa uno.

Como puede ver en los mensajes de error que ha pegado, Django Channels no pudo conectarse a localhost:6379, porque es probable que Redis no se esté ejecutando.

 2017-04-27 20:59:01,294 - ERROR - server - Error trying to receive messages: Error 61 connecting to localhost:6379. Connection refused. Exception in thread Thread-1: Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 439, in connect sock = self._connect() File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 494, in _connect raise err File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 482, in _connect sock.connect(socket_address) ConnectionRefusedError: [Errno 61] Connection refused

ACTUALIZACIÓN (2019-02-26) :

El paquete asgi_redis es para los canales 1.x , mientras que para los canales 2.x , se necesitaránchannels_redis.

over 4 years ago · Santiago Trujillo Relatório

0

Creo que has instalado el canal redis en virtualenv. Estaba enfrentando el mismo problema, luego instalé redis en mi local también y luego funciona bien. Verá que los Servicios (locales) se encuentran allí Redis Server.

Para la instalación de redis, puede seguir este enlace para ubuntu: https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda