Ich habe einen post_save-Hook, der eine Aufgabe auslöst, die in Sellerie ausgeführt wird. Die Task aktualisiert außerdem das Modell, wodurch der post_save-Hook ausgeführt wird. Der Haken ist, ich möchte .delay()
den Aufruf in diesem Fall nicht, ich möchte es nur synchron ausführen, da es bereits in einem Worker ausgeführt wird.Ermitteln, ob die Django-Funktion in einem Sellerie-Arbeiter ausgeführt wird
Gibt es eine Umgebungsvariable oder etwas anderes, das ich verwenden kann, um festzustellen, wenn der Code in Sellerie ausgeführt wird?
Zur Klarstellung: Mir ist bewusst, dass Sellerie-Aufgaben immer noch als normale Funktionen aufgerufen werden können, genau das versuche ich zu nutzen. Ich möchte so etwas tun:
if os.environ['is_celery']:
my_task(1, 2, 3)
else:
my_task.delay(1, 2, 3)
Tolle Idee, nicht sicher, warum ich nicht daran gedacht hatte, danke! –