ich so etwas wie dies tun möchten:Schedule Sellerie Aufgabe nach anderen Aufgabe ausgeführt werden soll (en) komplett
results = []
for i in range(N):
data = generate_data_slowly()
res = tasks.process_data.apply_async(data)
results.append(res)
celery.collect(results).then(tasks.combine_processed_data())
dh starten asynchrone Aufgaben über einen langen Zeitraum, planen Sie dann eine abhängige Aufgabe, die nur sein ausgeführt, sobald alle früheren Aufgaben abgeschlossen sind.
Ich habe Dinge wie chain
und chord
angeschaut, aber es scheint, als ob sie nur funktionieren, wenn Sie Ihr Task-Diagramm vollständig im Voraus erstellen können.
nein Ich möchte nicht, dass 'generate_data_slowly' und' process_data' synchronisiert werden. 'process_data' sollte von einem Worker ausgeführt werden, während ein anderer Datensatz generiert wird. 'generate_data_slowly' beinhaltet Hardware und muss in einem Master-Prozess laufen, nicht zwischen Arbeitern. – so12311