Redis
 sql >> Base de données >  >> NoSQL >> Redis

Sidekiq ne traite pas la file d'attente

La raison était dans notre cas :Sidekiq peut rechercher la mauvaise file d'attente. Par défaut, Sidekiq utilise une file d'attente nommée "default". Nous avons utilisé deux noms de file d'attente différents et les avons définis dans config/sidekiq.yml

# configuration file for Sidekiq
:queues:
  - queue_name_1
  - queue_name_2

Le problème est que ce fichier de configuration n'est pas chargé automatiquement par défaut dans votre environnement de développement (contrairement à database.yml ou thinking_sphinx.yml par exemple) par un simple bundle exec sidekiq commande. Ainsi, nous avons écrit nos travaux dans deux files d'attente, et Sidekiq attendait des travaux dans une troisième file (celle par défaut). Vous devez passer le chemin du fichier de configuration en paramètre via le -C ou --config choix :

bundle exec sidekiq -C ./config/sidekiq.yml

ou vous pouvez passer directement les noms des files d'attente (aucun espace autorisé ici après la virgule) :

bundle exec sidekiq -q queue_name_1,queue_name_2

Pour trouver le problème, il est utile de passer l'option -v ou --verbose également en ligne de commande ou d'utiliser :verbose: true dans le sidekiq.yml dossier. Tout ce qui est défini dans un fichier de configuration est bien sûr inutile si le fichier de configuration n'est pas chargé. Assurez-vous donc d'abord d'utiliser le bon fichier de configuration.