fix: GCP Redis managed don't support redis client setname command (#4422)

If using Redis on GCP, actionable will attempt to use the Redis client setname command. However, the command is not supported.
So Introducing `REDIS_DISABLE_CLIENT_COMMAND` environment variable will let you solve this issue. 

ref: https://github.com/rails/rails/issues/38244#issuecomment-575454444
This commit is contained in:
mjattiot 2022-11-03 03:14:51 +01:00 committed by GitHub
parent 4c43330b15
commit c121b44df4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,15 @@
# frozen_string_literal: true
require 'action_cable/subscription_adapter/redis'
ActionCable::SubscriptionAdapter::Redis.redis_connector = lambda do |config|
# For supporting GCP Memorystore where `client` command is disabled.
# You can configure the following ENV variable to get your installation working.
# ref:
# https://github.com/mperham/sidekiq/issues/3518#issuecomment-595611673
# https://github.com/redis/redis-rb/issues/767
# https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75173
# https://github.com/rails/rails/blob/4a23cb3415eac03d76623112576559a722d1f23d/actioncable/lib/action_cable/subscription_adapter/base.rb#L30
config[:id] = nil if ENV['REDIS_DISABLE_CLIENT_COMMAND'].present?
::Redis.new(config.except(:adapter, :channel_prefix))
end