Sidekiq 与连接到不同 Redis 实例的工作人员

Posted

技术标签:

【中文标题】Sidekiq 与连接到不同 Redis 实例的工作人员【英文标题】:Sidekiq with workers connecting to different Redis instances 【发布时间】:2022-01-23 20:45:50 【问题描述】:

在我当前的项目中,Heroku 上有一个 Redis 实例,Sidekiq 被配置为处理来自该实例的作业。我们需要将 Redis 实例迁移到 Azure,我想使用一个配置,其中一个 Worker 连接到 Heroku 上的 Redis 实例来处理任何排队的作业,其余的 Worker 连接到 Azure 上的新实例以避免任何数据丢失。

我是 Rails 和 Sidekiq 的新手。请提出一种实现所需配置的方法

【问题讨论】:

在此处查看文档:devcenter.heroku.com/articles/heroku-redis#connecting-to-redis ...您可能需要考虑使用 Redis Cloud:redis.com/redis-enterprise-cloud/overview Sidekiq 的创建者 Mike Perham 回复了这个帖子,这可能会有所帮助:***.com/questions/63020554/… 【参考方案1】:

docs say,您可以运行此命令来获取凭据:

heroku redis:credentials 

然后获取连接字符串:

heroku config:get REDIS_URL -a example-app

然后你可以使用REDIS_URL的连接字符串对外连接一下。

【讨论】:

我想以编程方式执行此操作。有没有办法可以设置 sidekiq 客户端/服务器配置,以便新作业排队到新的 Redis 服务器,同时可以从旧的和新的 Redis 服务器处理作业? @DogEatDog

以上是关于Sidekiq 与连接到不同 Redis 实例的工作人员的主要内容,如果未能解决你的问题,请参考以下文章

Docker-compose 与 redis、sidekiq、rails SocketError

与连接到同一个公共热点的所有用户聊天的 Android 聊天应用程序

QThread 线程间通信:连接到 &QThread::quit 与连接到 lambda [&thread] thread->quit(); 的奇怪行为

redis 尝试连接到 Heroku 中的本地主机 - 为啥?

FirebaseInstanceId.getInstanceId()与连接到iPhone WearOS设备上SERVICE_NOT_AVAILABLE失败

在多线程 Rails 环境中使用 Redis 的最佳方式是啥? (彪马/Sidekiq)