J'écris une application en utilisant Django 1.10 et Céleri. J'essaie de créer une boucle de céleri pouvant être démarrée et arrêtée via Django.Utilisation de variables globales dans Céleri: Quelle est la meilleure approche?
Mon idée ressemble à ceci (très simple):
_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
Le problème est que le céleri est généralement exécuté dans> 1 fil de travail et _run n'est pas accessible entre les threads.
Question: Quelle est la meilleure approche pour atteindre la fonctionnalité? Im penser à la mise en place d'une variable de base de données, mais je crains que ce n'est pas la meilleure approche.
Cela semble être une question XY. Pourquoi voulez-vous une boucle du tout? –
La boucle interrogera les données des API externes et remplira la base de données du système. Je ne comprends pas ce que tu veux dire par 'question XY'. – Vingtoft
Pourquoi utilisez-vous des tâches Celery? semble être un mauvais cas d'utilisation – Anentropic