如何将 Sidekiq (Redis) 队列移动到另一台服务器?
How to move Sidekiq (Redis) queue to another server?
所以我们在 Rails 应用程序中使用 Sidekiq 作为我们的队列管理系统。
我们还使用 Sidetiq 来管理计划任务和重复任务。
目前大约有 200-300 个计划任务 运行 从几分钟到 30 天不等。
我只会传输 Redis 数据库 rdb 文件,但由于一些配置更改,Rails 项目路径已更改(因此任务将无法再 运行)
将整个计划任务队列转移到新项目路径的首选方法是什么,但手动不是这种情况。
- Ruby 2.1.6
- Rails 3.2.22
- Sidekiq 3.4.2
- Redis 2.8.4
你可以按照你说的复制你的redis转储文件。我不清楚为什么要排除该选项。
手动执行(只需为其创建一个 ruby 脚本),移动计划任务应该非常容易。您唯一需要做的就是移动 redis 集 retry
和 schedule
使用 DUMP 和 RESTORE:
redis-cli -h source_host dump schedule | head -c-1 | redis-cli -h dest_host restore 0 schedule
我主要担心的是我认为我不能只复制 redis 数据库,因为我的项目路径发生了变化,但事实证明,这不是问题。
为我复制数据库的最快方法是首先将旧服务器上的 redis 绑定到它的 IP 或 0.0.0.0
然后在新服务器上 运行
redis-cli slaveof OLD_SERVER_IP 6379
然后当所有内容都被复制时(复制在几秒钟内完成),运行
redis-cli slaveof no one
多田。您的 Redis 数据库已完全复制。
所以我们在 Rails 应用程序中使用 Sidekiq 作为我们的队列管理系统。 我们还使用 Sidetiq 来管理计划任务和重复任务。
目前大约有 200-300 个计划任务 运行 从几分钟到 30 天不等。
我只会传输 Redis 数据库 rdb 文件,但由于一些配置更改,Rails 项目路径已更改(因此任务将无法再 运行)
将整个计划任务队列转移到新项目路径的首选方法是什么,但手动不是这种情况。
- Ruby 2.1.6
- Rails 3.2.22
- Sidekiq 3.4.2
- Redis 2.8.4
你可以按照你说的复制你的redis转储文件。我不清楚为什么要排除该选项。
手动执行(只需为其创建一个 ruby 脚本),移动计划任务应该非常容易。您唯一需要做的就是移动 redis 集 retry
和 schedule
使用 DUMP 和 RESTORE:
redis-cli -h source_host dump schedule | head -c-1 | redis-cli -h dest_host restore 0 schedule
我主要担心的是我认为我不能只复制 redis 数据库,因为我的项目路径发生了变化,但事实证明,这不是问题。
为我复制数据库的最快方法是首先将旧服务器上的 redis 绑定到它的 IP 或 0.0.0.0
然后在新服务器上 运行
redis-cli slaveof OLD_SERVER_IP 6379
然后当所有内容都被复制时(复制在几秒钟内完成),运行
redis-cli slaveof no one
多田。您的 Redis 数据库已完全复制。