Ist es möglich, Celery beim Start automatisch auszuführen?

Ist es möglich, Celery beim Start automatisch auszuführen?

Ich habe einen Python-Server, der auf Django und Celery basiert. Bei jedem Neustart des Computers wird Apache2 gestartet, sodass mein Server funktioniert, ABER ich muss Celery manuell neu starten (indem ich in mein Projektverzeichnis gehe und „python manage.py celeryd“ ausführe). Was ist die richtige Lösung für die Produktion? Ich meine, gibt es eine Möglichkeit, Celery als Daemon zu starten?

Hierhttp://github.com/ask/celery/tree/master/contrib/debian/init.d/Ich habe zwei Skripte gefunden, die sich anscheinend in /etc/init.d/ befinden sollten, wie das Apache2-Skript, das Apache2 startet. Aber ich habe sie in /etc/init.d/ abgelegt und wie ich sehe, ändert sich nichts.

Antwort1

Sie könnten die /etc/init.d-Skripte manuell mit /etc/rc5.d/ verknüpfen, damit sie gleichzeitig mit Ihrer GUI gestartet werden. Und Sie benötigen ein weiteres Skript zum Herunterfahren.

Aber Debian hat eine fortgeschrittenere (und bessere) Methode. Diese steuert, was von den einzelnen Runlevel-Init-Skripten verlinkt wird. Dafür wird „BEGIN INIT INFO“ im Kommentarbereich oben in diesen Skripten verwendet.

Wenn Sie Debian verwenden, verwenden Sie nicht einfach Skripte aus einer ihrer Ressourcen, sondern

update-rc.d celerybeat-Standardeinstellungen
update-rc.d celeryd-Standardeinstellungen

Antwort2

Celery liefert eine Beispielkonfiguration fürAufsicht, ein Daemon, der sich um projektbezogene Aufgaben und Daemons kümmert. Debian Unstable hat bereits eine gepackte Version von Supervisor verfügbar. Wenn Sie es installieren, müssen Sie nur die Beispielkonfiguration von Celery (zu finden in contrib/supervisor) ändern und in /etc/supervisor/conf.d/ ablegen.

Antwort3

Sie haben nicht erwähnt, welche Distribution Sie verwenden. Das ist wichtig zu wissen, da Startskripte von Distribution zu Distribution sehr unterschiedlich sind. Vorausgesetzt, Sie arbeiten mit Redhat/CentOS ...

Idealerweise sollten Sie ein init.d-Skript finden. Das ist die bessere Option, da es auch dazu verwendet wird, Ihren Daemon sicher herunterzufahren, seine Konfiguration neu zu laden, ihn neu zu starten usw. Wenn Sie jedoch eine schnelle und einfache Lösung möchten, fügen Sie einfach " python manage.py celeryd" an das Ende Ihrer /etc/rc.localDatei ein.

Bearbeiten: Ich sehe am Pfadnamen in Ihrem Beispiel, dass Sie Debian verwenden. Ich bin nicht sicher, ob Debian eine Datei /etc/rc.local hat. Aber ich lasse diese Antwort stehen, falls das der Fall ist oder diese Information für jemand anderen nützlich ist.

verwandte Informationen