小编Jen*_*ted的帖子

不支持带有 GCP Memorystore Redis 客户端命令的 Ruby on Rails Action Cable + Sidekiq

我已经使用 GCP 中的云 sql 在 docker 中设置了一个 Rails 应用程序。我现在添加 Memorystore Redis 以及 Action Cable 和 Sidekiq。

GCP Memorystore redis不支持客户端命令并导致硬错误:

RedisClient::CommandError: ERR unknown command `CLIENT`, with args beginning with: `SETNAME`, `ActionCable-PID-18`
Run Code Online (Sandbox Code Playgroud)

在 docker compose 中本地运行东西没有任何问题。

Google 详细记录了 GCP 的 Memorystore redis 不支持客户端命令。

就配置而言,已设置无服务器 VPC 并使用以下命令构建映像:

vpc-connector=VPC_id 
update-env-vars REDIS_URL=redis://ip:port
Run Code Online (Sandbox Code Playgroud)

启动 docker 映像,它会创建云 sql 数据库并开始播种。

在播种过程中,当使用操作 Cable/sidekiq 创建用户期间发送电子邮件时,会发生错误。

根据 sidekiq git: https: //github.com/sidekiq/sidekiq/issues/3518 有一个已知的解决方法。在我的 redis 初始化程序中我添加了:

  Sidekiq.configure_server do |config|
    config.redis = { url: ENV["REDIS_URL"], id: nil }
  end

  Sidekiq.configure_client do |config|
    config.redis = …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails sidekiq google-cloud-platform actioncable google-cloud-memorystore

4
推荐指数
1
解决办法
591
查看次数