Ich schreibe eine App mit Django 1.10 und Sellerie. Ich versuche, eine Schleife in Sellerie zu erstellen, die durch Django gestartet und gestoppt werden kann.Verwenden globaler Variablen in Sellerie: Was ist der beste Ansatz?
Meine Idee sieht so etwas (sehr einfach):
_run = False
def do_work():
global _run
while _run:
# Do something
@app.task
def start():
global _run
_run = True
do_work()
@app.task
def stop():
global _run
_run = False
Das Problem ist, dass Sellerie laufen typischerweise in> 1 Arbeits Faden und _run ist zugreifbar nicht zwischen Threads.
Frage: Was ist der beste Ansatz, um die Funktionalität zu erreichen? Ich denke darüber nach, eine Datenbankvariable zu setzen, aber ich fürchte, es ist nicht der beste Ansatz.
Dies scheint wie eine Frage XY. Warum willst du überhaupt eine Schleife? –
Die Schleife ruft Daten von externen APIs ab und füllt die Systemdatenbank auf. Ich verstehe nicht, was du mit 'XY-Frage' meinst. – Vingtoft
Warum verwenden Sie Sellerie Aufgaben? scheint ein falscher Anwendungsfall zu sein – Anentropic