Sellerie Stücke in der Kette

8

Ich würde gerne Stücke im Sellerie-Ketten-Befehl verwenden.

%Vor%

Grundsätzlich möchte ich task1 ausführen, die Ergebnisse chunkieren und chunks an task2 senden, die dann task3 aufrufen sollten, die auch chunked Ergebnisse von task2 erhalten soll, um den Prozess zu beenden. Warum? Weil task1 und task2 beide eine angemessene Anzahl von Artikeln zurückgeben können, die ich in mehreren Batches verarbeiten möchte.

Der obige Code funktioniert nicht, da ich nicht sicher bin, was ich anstelle von Fragezeichen setzen soll, damit es funktioniert.

Ich bin mir nicht ganz sicher, ob dies überhaupt möglich ist, da die Suche nicht sehr viel Erfolg gebracht hat. Wenn also ein solcher Workflow nicht möglich ist, würde ich mich für vernünftige Alternativen interessieren.

    
user962563 13.09.2013, 10:05
quelle

1 Antwort

0

Ich bin mir nicht sicher, ob das überhaupt mit den austretenden Primitiven möglich ist.

Ich denke, wenn zwei Alternativen / Work-arounds:

  1. Verwenden Sie Chunks / Chords, um neue Aufgaben innerhalb einer Aufgabe zu initiieren.

    Sie müssen schon an dieses gedacht haben. Die Idee ist, task1 normalerweise mit apply_async aufzurufen. Sobald diese Aufgabe fertig ist und die massive Ausgabe generiert wird, die Chunking benötigt, verwenden Sie einfach das Chunks Primitiv um weitere Teile für task2 zu erstellen. Führen Sie in gleicher Weise den gleichen Schritt für den Übergang zwischen task2 und task3 durch. Das Aufrufen von Tasks innerhalb von Tasks ist nur dann eine schlechte Idee, wenn Sie darauf warten, die Ergebnisse der inneren Task abzurufen. Denken Sie also daran, wenn Sie auf die Aufgabenergebnisse warten, dann wäre dies kein empfohlener Ansatz.

    %Vor%
  2. Diese Lösung ist ein bisschen interessant. Ich bin auf eine spezielle Anfrage auf der Sellerie-Github-Ausgabe-Seite gestoßen. Sehen Sie sich diese Pull-Anfrage von steeve an: Ссылка Nach dem, was ich verstanden habe, hat er einen dynamischen Task-Decorator erstellt (es gibt eine Debatte darüber, ob der Name das sein sollte), der versteht, ob eine Aufgabe eine Teilaufgabe zurückgibt. Wenn dies der Fall ist, gilt diese Teilaufgabe zuerst. Er behauptet, dass er es erfolgreich bei Veezio in der Produktion verwendet. Ich habe es selbst nicht ausprobiert. Ich schlage vor, zu diesem Thread zu gehen und ein paar Fragen zu stellen. Oder nervt Steeve sogar bei Twitter oder einem IRC oder so.

arijeet 07.09.2016 14:20
quelle

Tags und Links