Tengo un proyecto de Rails en el que Action Cable usa Redis. El entorno de la PC es Windows 10 + Ubuntu 18. Como instalé Docker y provoqué que Ubuntu no se ejecutara normalmente, eliminé y reinstalé Ubuntu. Desde entonces, no he podido hacer que este proyecto de Rails se ejecute en un servidor local (a través de "rails s" o "foreman s").
Dado que edité "redis.service" y "sysctl.conf" varias veces y aún no pude resolver el problema de que Redis no puede establecer el máximo de archivos abiertos, elegí eliminar Redis e instalarlo nuevamente.
Después de eso, aunque el proyecto se puede activar temporalmente (a través de "rieles" o "capataz"), una vez que hago clic en el hipervínculo del proyecto (cualquier página web que no sea Dispositivo), el servidor se cerrará automáticamente. A través del registro, encontré que el mismo mensaje de error aparecerá 5 veces antes de que el apagado automático sea el siguiente:
22:05:11 web.1 | from /home/keaton/.rvm/gems/ruby-2.7.3/gems/actioncable-6.1.4.1/lib/action_cable/subscription_adapter/redis.rb:80:in `listen' 22:05:11 web.1 | from /home/keaton/.rvm/gems/ruby-2.7.3/gems/actioncable-6.1.4.1/lib/action_cable/subscription_adapter/redis.rb:154:in `block in ensure_listener_running' 22:05:11 web.1 | /home/keaton/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/socket.rb:1214:in `__connect_nonblock': Operation now in progress - connect(2) would block (IO::EINPROGRESSWaitWritable) 22:05:11 web.1 | from /home/keaton/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/socket.rb:1214:in `connect_nonblock'¿Como puedó resolver esté problema? Soy un novato que ha estado aprendiendo Ruby on Rails durante solo tres meses. ¡Por favor, ayúdame!
En lugar de usar Redis dentro de Docker, es posible que desee consultar Memurai: es el puerto nativo de Windows de Redis.
Descargo de responsabilidad: trabajo en Memurai.