2015-08-12 3 views
0

Таким образом, мы используем Sidekiq в качестве нашей системы управления очередями в нашем Rails-приложении. Мы также используем Sidetiq для управления запланированными и повторяющимися задачами.Как перенести очередь Sidekiq (Redis) на другой сервер?

На данный момент существует около 200-300 запланированных задач, которые будут выполняться в любое время от нескольких минут до 30 дней.

Я хотел бы передать только Redis файл RDB базы данных, но из-за некоторых изменений конфигурации, путь Rails проекта изменился (отсюда задачи не будет в состоянии работать больше)

Что бы предпочтительный способ передачи целых запланированных задач очередь для работы с новым маршрутом проекта и вручную - это не так.

  • Рубин 2.1.6
  • Rails 3.2.22
  • Sidekiq 3.4.2
  • Redis 2.8.4

ответ

0

Моя главная задача была я думал, что я не мог просто скопировать Redis поскольку путь моего проекта меняется, но, как оказалось, это не проблема.

быстрый способ репликации БД для меня был первой связываемой Redis на старом сервере, чтобы либо это IP или 0.0.0.0

, а затем на новом сервере перспективе

redis-cli slaveof OLD_SERVER_IP 6379

, а затем, когда все копируется (копирование выполняется в считанные секунды), запустить

redis-cli slaveof no one

Тад. Ваш Redis db полностью реплицируется.

0

Вы можете скопировать ваши Redis файл дампа, как вы сказали. Мне непонятно, почему вы исключаете этот вариант.

Выполнение этого вручную (просто создайте для него рубиновый скрипт), перемещение запланированных задач должно быть довольно простым. Единственное, что вам нужно сделать, это перемещение Redis устанавливает retry и schedule

Смежные вопросы