2017-07-07 4 views
0

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.

+0

Dies scheint wie eine Frage XY. Warum willst du überhaupt eine Schleife? –

+0

Die Schleife ruft Daten von externen APIs ab und füllt die Systemdatenbank auf. Ich verstehe nicht, was du mit 'XY-Frage' meinst. – Vingtoft

+0

Warum verwenden Sie Sellerie Aufgaben? scheint ein falscher Anwendungsfall zu sein – Anentropic

Antwort

Verwandte Themen