Ich habe einige "schwere" Anfragen an die Datenbank, die ich mit Sellerie ausführen werde. Wenn man berücksichtigt, dass sie "schwer" sind, möchte ich sie nacheinander (nacheinander) ausführen. Eine mögliche Lösung besteht darin, --concurrency=1
in der Befehlszeile zu Sellery anzugeben. Und es funktioniert. Aber es gibt ein Problem: Während die Aufgaben alle folgenden Anfragen zurückgeben None
ausgeführt werden:Sequentielle Aufgabenausführung in Sellerie
from celery.task.control import inspect
# Inspect all nodes.
i = inspect()
print(i.scheduled()) # None
print(i.active()) # None
print(i.reserved()) # None
print(i.registered()) # None
Auch läuft celery inspect ping
kehrt Error: No nodes replied within time constraint.
Damit ich keine Informationen über den Sellerie Warteschlangenstatus erhalten kann.
Es ist mein Test Python Module:
celeryconfig.py
#BROKER_URL = 'redis://localhost:6379/0'
BROKER_URL = 'amqp://'
#CELERY_RESULT_BACKEND = "redis"
CELERY_RESULT_BACKEND = "amqp://"
# for php
CELERY_TASK_RESULT_EXPIRES = None
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_ACKS_LATE = True
tasks.py
from celery import Celery
from time import sleep
app = Celery('hello')
app.config_from_object('celeryconfig')
@app.task
def add(x, y):
sleep(30)
return x + y
client.py
from tasks import add
result=add.delay(4, 4)
result=add.delay(4, 4)
result=add.delay(4, 4)
result=add.delay(4, 4)
result=add.delay(4, 4)
result=add.delay(4, 4)
Also, die Frage ist, wie die Aufgaben nacheinander ausgeführt werden UND in der Lage sein, den Status der Warteschlange zu überprüfen?
Vielen Dank für Ihre Antwort. Ich benutze Standardeinstellungen (Neuinstallation) und alles was ich zusätzlich habe, habe ich in der Frage gegeben. Vielleicht macht es Sinn, dass ich das unter Windows mache. Ich werde das unter Linux überprüfen und zurückkommen. –
Ich habe es unter Linux getestet, und das Problem existiert dort nicht. Dies könnte ein Windows-spezifisches Problem sein. Upvoting für Ihre Frage sowieso für die ausführlichen Erklärungen und Tests. –