Я постоянно получаю ошибку Redis :: Timeout в своем приложении (как в пользовательском интерфейсе, так и в фоновых заданиях). Я использую службу AWS ElastiCache для Redis.Redis :: Приложение TimeoutError in Rails
Вот как я создаю соединение Redis. В моем config/application.rb у меня есть:
$redis = Redis.new(host: REDIS_HOST, port: REDIS_PORT, db: REDIS_DB)
Как я могу избежать получения ошибок таймаута? Я использую настройки соединения по умолчанию следующим образом:
> $redis.client.options[:reconnect_attempts]
=> 1
> $redis.client.options[:timeout]
=> 5.0
> $redis.client.options[:tcp_keepalive]
=> 0
> $redis.client.options[:inherit_socket]
=> false
При каких обстоятельствах вы получаете тайм-ауты? При любой попытке? – soveran
Это случается спорадически, и я не смог воспроизвести его надежно. Я узнаю об этом, когда отправляется уведомление об исключении. –
Можете ли вы проверить использование памяти вашего приложения Ruby, когда это произойдет? Это происходит, когда работает сборщик мусора? – soveran