ActionCable: Зачем так много подключений?

После опробования ActionCable в локальной среде разработки. Я заметил, что приложение замедляется и часто зависает.

Если я запускаю netstat, я вижу много соединений, созданных кабелем действия. Это ожидаемо и нормально?

 netstat -atn | grep 3000
tcp4       0      0  127.0.0.1.3000         127.0.0.1.52163        ESTABLISHED
tcp4       0      0  127.0.0.1.52163        127.0.0.1.3000         ESTABLISHED
tcp4       0      0  127.0.0.1.3000         127.0.0.1.52161        ESTABLISHED
tcp4       0      0  127.0.0.1.52161        127.0.0.1.3000         ESTABLISHED
tcp4       0      0  127.0.0.1.3000         127.0.0.1.52159        ESTABLISHED
tcp4       0      0  127.0.0.1.52159        127.0.0.1.3000         ESTABLISHED
tcp4       0      0  127.0.0.1.3000         127.0.0.1.52157        ESTABLISHED
tcp4       0      0  127.0.0.1.52157        127.0.0.1.3000         ESTABLISHED
tcp4       0      0  127.0.0.1.3000         127.0.0.1.52155        ESTABLISHED
tcp4       0      0  127.0.0.1.52155        127.0.0.1.3000         ESTABLISHED
tcp4       0      0  127.0.0.1.3000         127.0.0.1.52152        ESTABLISHED
tcp4       0      0  127.0.0.1.52152        127.0.0.1.3000         ESTABLISHED
tcp4       0      0  127.0.0.1.3000         127.0.0.1.52146        ESTABLISHED
tcp4       0      0  127.0.0.1.52146        127.0.0.1.3000         ESTABLISHED
tcp4       0      0  *.3000                 *.*                    LISTEN
tcp4       0      0  127.0.0.1.3000         127.0.0.1.51682        TIME_WAIT
tcp4       0      0  127.0.0.1.3000         127.0.0.1.51688        TIME_WAIT
tcp4       0      0  127.0.0.1.3000         127.0.0.1.51684        TIME_WAIT
tcp4       0      0  127.0.0.1.3000         127.0.0.1.51686        TIME_WAIT
tcp4       0      0  127.0.0.1.3000         127.0.0.1.51667        TIME_WAIT
tcp4       0      0  127.0.0.1.3000         127.0.0.1.51690        TIME_WAIT

Я попытался изменить нетерпеливую загрузку, но, похоже, это не изменило это поведение.

config.eager_load = true

person ardochhigh    schedule 27.06.2017    source источник
comment
как вы поддерживаете связь   -  person Tushar Pal    schedule 11.07.2017
comment
Просто используя настройки ActionCable по умолчанию для простого уведомления   -  person ardochhigh    schedule 11.07.2017
comment
так что это не будет проблемой, потому что вы используете настройку по умолчанию, поэтому создается несколько соединений. Чтобы избежать этого, вы можете использовать конфигурацию производства, настроив конфигурацию производства. разработка: адаптер: асинхронный тест: адаптер: асинхронное производство: адаптер: URL-адрес redis: redis://10.10.3.153:6381 префикс_канала: appname_production   -  person Tushar Pal    schedule 11.07.2017
comment
Не могли бы вы сообщить нам, какой сервер вы используете в разработке? Я рискну предположить, что если бы вы перешли на Puma в процессе разработки, проблема была бы решена.   -  person stef    schedule 11.07.2017
comment
@stef Я использую Puma с Rails 5.1   -  person ardochhigh    schedule 12.07.2017


Ответы (1)


production:
 adapter: redis
 url: redis://redis.example.com:6379

local: &local
 adapter: redis
 url: redis://localhost:6379

development: *local
test: *local

https://www.phusionpassenger.com/library/config/standalone/action_cable_integration/< /а>

Перейди по ссылке

Асинхронный адаптер

Асинхронный адаптер предназначен для разработки/тестирования и не должен использоваться в производстве.

Адаптер Redis

Action Cable содержит два адаптера Redis: «обычный» Redis и Evented Redis. Оба адаптера требуют, чтобы пользователи предоставили URL-адрес, указывающий на сервер Redis. Кроме того, может быть указан префикс канала, чтобы избежать конфликтов имен каналов при использовании одного и того же сервера Redis для нескольких приложений. Дополнительные сведения см. в документации Redis PubSub.

Адаптер PostgreSQL

Адаптер PostgreSQL использует для подключения пул соединений Active Record и, следовательно, конфигурацию базы данных config/database.yml приложения. Это может измениться в будущем.

person Tushar Pal    schedule 11.07.2017