Ich habe erfolgreich gelernt, einige Grundlagen der Sellerie, aber ich habe keine einfache Möglichkeit, einzelne Datei ausführbar zu erstellen (ohne Notwendigkeit, Selleriebeat als separaten Prozess zu regelmäßigen ausführen zu finden Aufgaben). Es ist möglich, eine App und starten Sie ihren Arbeitsprozess (http://docs.celeryproject.org/en/3.1/userguide/application.html) zu schreiben:So erstellen Sie eine einzelne Datei ausführbar mit Sellerie Aufgaben
from datetime import timedelta
from celery import Celery
app = Celery()
@app.task
def test():
print("he-he")
app.conf.update(
BROKER_URL="redis://localhost:6379",
CELERY_RESULT_BACKEND="redis://localhost:6379",
CELERY_ACCEPT_CONTENT=["application/json"],
CELERY_TASK_SERIALIZER="json",
CELERY_RESULT_SERIALIZER="json",
CELERYBEAT_SCHEDULE={
'runs-every-30-seconds': {
'task': '__main__.test',
'schedule': timedelta(seconds=30),
},
}
)
if __name__ == '__main__':
app.worker_main()
Aber wie kann ich den Beat-Prozess aus dem gleichen Modul starten runnning periodische Aufgaben zu starten (um nicht celerybeat Daemon als zu laufen separate ausführbare Datei)? Es ist wichtig, weil ich pyinstaller verwenden möchte, also ist kein dedizierter Python-Interpreter auf Client-Rechnern verfügbar.
Vielen Dank im Voraus! Und ich wünsche Ihnen frohe Weihnachten und ein gutes neues Jahr!