【问题标题】:Redis caused Action Cable error and the local server was automatically shut downRedis导致Action Cable错误,本地服务器被自动关闭
【发布时间】:2021-12-24 23:54:44
【问题描述】:

我有一个 Rails 项目,其中 Action Cable 使用 Redis。 PC环境为Windows 10 + Ubuntu 18。由于我安装了Docker导致Ubuntu无法正常运行,所以我将Ubuntu卸载重新安装。从那时起,我就无法让这个 Rails 项目在本地服务器上运行(通过“rails s”或“foreman s”)。

由于我多次编辑了“redis.service”和“sysctl.conf”,仍然无法解决Redis无法设置最大打开文件数的问题,所以我选择移除Redis重新安装。

之后,虽然可以暂时激活项目(通过“rails s”或“foreman s”),但一旦我点击项目中的超链接(Device以外的任何网页),服务器会自动关闭.通过日志发现自动关机前会出现5次相同的错误信息如下:

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'

我该如何解决这个问题?我是一个新手,学习 Ruby on Rails 才三个月。请帮帮我!

【问题讨论】:

    标签: ruby-on-rails ruby redis rubygems actioncable


    【解决方案1】:

    您可能想查看 Memurai,而不是在 Docker 中使用 Redis:它是 Redis 的原生 Windows 端口。

    免责声明:我在 Memurai 工作。

    【讨论】:

    • 如何配置 actioncable 以使用 memurai?
    • Memurai 的配置与 Redis 相同。也就是说,我不知道可操作。对不起。
    • FWIW - 我根本不需要做太多事情,它适用于标准 redis gem,但我必须在电缆配置中将 localhost 更改为 127.0.0.1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 2017-06-29
    • 2011-11-11
    • 2022-01-08
    • 2019-06-06
    • 2019-11-11
    相关资源
    最近更新 更多