Ciągle pojawia się błąd Redis :: Timeout w mojej aplikacji (zarówno w interfejsie użytkownika, jak i w pracy w tle). Korzystam z usługi AWS ElastiCache dla Redis.Redis :: Aplikacja TimeoutError w Railsach
W ten sposób tworzę połączenie Redis. W moim pliku config/application.rb:
$redis = Redis.new(host: REDIS_HOST, port: REDIS_PORT, db: REDIS_DB)
Jak mogę uniknąć błędów przekroczenia limitu czasu? Używam ustawienia połączenia domyślnych następująco:
> $redis.client.options[:reconnect_attempts]
=> 1
> $redis.client.options[:timeout]
=> 5.0
> $redis.client.options[:tcp_keepalive]
=> 0
> $redis.client.options[:inherit_socket]
=> false
W jakich okolicznościach otrzymujesz limity czasu? Przy każdej próbie? – soveran
Zdarza się to sporadycznie i nie udało mi się odtworzyć go w wiarygodny sposób. Dowiedziałem się o tym, kiedy wysyłane jest powiadomienie o wyjątku. –
Czy możesz sprawdzić użycie pamięci w aplikacji Ruby, gdy tak się dzieje? Czy to się dzieje, gdy działa garbage collector? – soveran