Ich habe ein 3 Sellerie Aufgaben wie folgt aus:Wie man Sellerie Aufgabenrückrufe stoppt?
@app.task
def main_func():
if this:
func1.delay()
else:
func2.delay()
@app.task
def func1():
... do something ...
@app.task
def func2():
... do something ...
Funktion main_func
alle 30 Sekunden auszuführen geplant ist. Wenn eine Bedingung erfüllt ist, wird eine Sellerie-Aufgabe von func1
aufgerufen. Andernfalls wird eine Aufgabe für func2
erstellt.
Jetzt, wenn ich den Sellerie Arbeiter ausführen und die Funktion main_func
ausgeführt wird, dann ruft es sich erneut mit func1
oder func2
in Schleifenbildung.
Jetzt im Protokoll sollten die Tasks einen Zeitunterschied von 30 Sekunden zwischen aufeinanderfolgenden Ausführungen haben, aber wegen der Schleife laufen sie nacheinander weiter.
Wie kann ich diese Situation verhindern?
Anmerkung: Ich bin mit Sellerie 4.0.2