Nous utilisons donc Sidekiq comme système de gestion des files d’attente dans notre application Rails. Nous utilisons également Sidetiq pour gérer les tâches planifiées et récurrentes.
À l'heure actuelle, environ 200 à 300 tâches planifiées sont exécutées à tout moment, de quelques minutes à 30 jours.
Je ne transférerais que le fichier rdb de la base de données Redis, mais en raison de certaines modifications de la configuration, le chemin du projet Rails a été modifié (par conséquent, les tâches ne pourront plus s'exécuter)
Ce qui serait un moyen privilégié de transférer la file d'attente entière de tâches planifiées pour qu'elle fonctionne avec le nouveau chemin de projet et manuellement n'est pas le cas.
- Ruby 2.1.6
- Rails 3.2.22
- Sidekiq 3.4.2
- Redis 2.8.4
Réponses:
2 pour la réponse № 1Utilisez DUMP et RESTORE:
redis-cli -h source_host dump schedule | head -c-1 | redis-cli -h dest_host restore 0 schedule
http://redis.io/commands/restore
0 pour la réponse № 2
Vous pouvez copier votre fichier de vidage Redis comme vous l'avez dit. Je ne comprends pas pourquoi vous excluez cette option.
Faites-le manuellement (créez simplement un script ruby), déplacer les tâches planifiées devrait être assez facile. La seule chose à faire est de déplacer les ensembles Redis retry
et schedule
0 pour la réponse № 3
Ma principale préoccupation était de penser que je ne pouvais pas simplement copier la base de données Redis car le chemin de mon projet changeait, mais en fin de compte ce n’était pas un problème.
Le moyen le plus rapide de répliquer la base de données pour moi a été de lier d'abord Redis sur un ancien serveur à l'adresse IP ou à la 0.0.0.0
puis sur le nouveau serveur
redis-cli slaveof OLD_SERVER_IP 6379
et puis quand tout est copié (la copie est faite en quelques secondes), lancez
redis-cli slaveof no one
Tada. Votre base de données Redis est entièrement répliquée.