web-dev-qa-db-fra.com

Emplois Sidekiq bloqués dans la file d'attente

Sidekiq fonctionne parfaitement en mode développement. Maintenant que j'essaie de l'utiliser en production, tous les travaux sont simplement en attente et ne sont jamais exécutés. Quelqu'un pourrait-il m'indiquer dans la bonne direction comment résoudre ce problème?

41
groffcole

Veuillez vérifier si le processus sidekiq est réellement en cours d'exécution:

ps aux | grep sidekiq

Si ce n'est pas le cas, essayez d'exécuter sidekiq au premier plan et vérifiez la sortie.

bundle exec sidekiq -e production
40
cthulhu

Dans de nombreux cas pour moi, c'est parce que je n'ai pas correctement déclaré la file d'attente pour ce service spécifique dans config/sidekiq.yml.

5
paascal

Cette réponse semble pertinente: Sidekiq ne traite pas la file d'attente Si Sidekiq n'est pas informé du fichier de configuration (qui peut nécessiter une incantation différente en production), il se peut qu'il n'utilise pas la bonne file d'attente.

3
ChrisPhoenix

Juste un avertissement à tous alors que je finissais cette page en essayant de comprendre pourquoi mes Rails travaux Sidkiq ne se déplaçaient pas 'mis en file d'attente').

  1. Vérifiez votre console sidekiq dans votre terminal
  2. Mon problème qui m'a gâché pendant près d'une heure ... duh ... J'ai eu un 'byebug' breakpoint dans le code qui est idiot de mettre en tâche de fond. Cela va totalement gâcher votre travail. Évidemment ... je ne voulais pas mettre ce point d'arrêt là. Je le jure :)
2
slindsey3000

Ma solution:

1.) Regardez Sidekiq Web UI pour votre application (c'est là que vous pouvez voir le fait que les travaux entrent dans un état mis en file d'attente).

2.) Réessayez manuellement une tâche ayant échoué

3.) Inspectez les journaux sur le serveur exécutant Sidekiq:

(généralement, c'est là que le journal sera situé, si vous dites que vous faites cela lors de la mise en scène)

tail -f /var/www/yourappname/current/log/staging.log

C'est généralement là que vous verrez un message d'erreur plus détaillé expliquant pourquoi Sidekiq ne peut pas traiter les travaux mis en file d'attente. Dans notre cas, il y avait une variable d'environnement pointant vers un point de terminaison incorrect spécifique à notre configuration de déploiement.

1
Joseph Combs

En utilisant capistrano-sidekiq gem a résolu notre problème

0
Shimaa Marzouk