django-selderij werkt in ontwikkeling, mislukt in wsgi-productie: hoe debuggen?

Ik gebruik de taakrij django-bleekselderij en het werkt prima in de ontwikkeling, maar helemaal niet in de wsgi-productie. Nog frustrerender, het gebruikte om in productie te werken, maar ik brak het op de een of andere manier.

"sudo rabbitmqctl status" vertelt me ​​dat de rabbitmq-server werkt. Alles lijkt ook peachy in django: objecten worden gemaakt en zonder problemen naar de task manager gerouteerd. Maar dan blijft hun status voor onbepaalde tijd "in de wachtrij" staan. Zoals ik mijn code heb geschreven, moeten ze overschakelen naar "error" of "ready", zodra er iets terugkomt van de selderentaak. Dus ik neem aan dat er iets mis is met de wachtrij.

Twee gerelateerde vragen:

  • Welke ideeën kan het probleem zijn?
  • Hoe debug ik selderij? Buiten het manage.py commando van de selderij, weet ik niet zeker hoe ik in zijn innerlijke werk moet kijken. Zijn er logbestanden of iets dat ik kan gebruiken?

Bedankt!

PS - Ik heb deze vraag gezien, maar hij lijkt selder te willen rennen van manage.py, niet wsgi.

2

2 antwoord

After much searching, the most complete answer I found for this question is here. These directions flesh out the skimpy official directions for daemonizing celeryd. I'll copy the gist here, but you should follow the link, because Michael has explained some parts in more detail.

Het belangrijkste idee is dat je scripts op drie plaatsen nodig hebt:

  1. /etc/init.d/celeryd
  2. /etc/default/celeryd
  3. myApp/settings.py

Instellingen.py lijkt hetzelfde te zijn als in de ontwikkelingsmodus. Dus als dat al is ingesteld, zijn er vier stappen om over te schakelen naar productie:

  1. Download the daemon script since it's not included in the installation: https://github.com/celery/celery/tree/3.0/extra/generic-init.d/
  2. Put it in /etc/init.d/celeryd
  3. Make a file in /etc/default/celeryd, and put the variables here into it: http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html#example-django-configuration
  4. Start the script

Dit loste mijn probleem op.

2
toegevoegd
alle links 404 behalve github
toegevoegd de auteur JeffC, de bron

Ik denk dat de reden dat je geen antwoord krijgt van selderij, is omdat de celeryd-server mogelijk niet actief is. Je kunt erachter komen door ps -ef | grep celeryd te doen. Om te weten wat de fout is tijdens het proberen om Celeryd uit te voeren, zou je het volgende willen doen.

In your settings.py file you could give the path to the celery log file CELERYD_LOG_FILE = and while running celeryd server you could specify the level manage.py celeryd -l DEBUG.

1
toegevoegd
Dankje voor het antwoord. Het probleem heeft zich dit weekend op mysterieuze wijze hersteld. Ik plaats hier updates als ik iets nieuws over het probleem leer.
toegevoegd de auteur Abe, de bron
Dus hetzelfde probleem verschijnt weer. De ps gebruiken grep-opdracht die u hebt aanbevolen, het is duidelijk dat de selderie-daemon niet wordt uitgevoerd. Hoe start ik het? Domme vraag misschien, maar ik kan geen duidelijke instructies vinden. Voer ik gewoon NoHup beheren.py Celeryd?
toegevoegd de auteur Abe, de bron