Gibt es eine Möglichkeit, einen laufenden Workflow anzuhalten/fortzusetzen, der mit Ketten aus Sellerie 3.0 erstellt wurde?Django Sellerie Workflow-Kette Anhalten/Fortsetzen
Grundsätzlich haben wir zwei verschiedene Arten von Aufgaben in unserem System: interaktive und nicht interaktive Aufgaben. Die nicht interaktiven haben wir alle Parameter für, aber die interaktiven benötigen Benutzereingaben. Beachten Sie, dass wir für die interaktiven Aufgaben nur dann eine Benutzereingabe anfordern können, wenn alle vorherigen Aufgaben in der Kette abgeschlossen sind, da ihre Ergebnisse die interaktiven Aufgaben betreffen (d. H. Wir können keine Benutzereingabe anfordern, bevor die tatsächliche Kette erstellt wird).
Irgendwelche Vorschläge, wie man das angeht? Wirklich ratlos hier ..
Aktuelle Ideen:
- Erstellen Sie zwei Unterklassen von Aufgabe (von Sellerie Import-Task). Fügen Sie der Interactive-Task-Unterklasse, die standardmäßig auf false festgelegt ist, eine zusätzliche Instanzvariable (Klassenmember) hinzu, die angibt, dass einige Benutzereingaben weiterhin benötigt werden. Irgendwie haben Sie Zugriff auf die Instanz der Aufgabe und setzen sie von außerhalb des Selleriearbeiters auf "Wahr" (obwohl ich das ziemlich oft gelesen habe und es nicht möglich erscheint, direkt von einem anderen Modul aus auf Aufgabenobjekte zuzugreifen)
- Partitionieren Sie die Kette in mehrere durch interaktive Jobs begrenzte Ketten. Lassen Sie eine Art von Mechanismus außerhalb des Selleriearbeiters erkennen, sobald eine Kette ihr Ende erreicht hat, und lösen Sie die interaktive clientseitige Komponente der interaktiven Aufgabe aus. Sobald der Benutzer alle diese Daten eingegeben hat, rufen Sie die Daten ab und starten Sie die neue Kette, in der sich die interaktive Aufgabe an der Spitze der neuen Kette befindet.