Kann ich die Verarbeitungsreihenfolge von verknüpften Tasks steuern

Ich habe mein Setup in letzter Zeit verändert und dabei alles in drei Aufgaben aufgeteilt bzw. zusammengefasst. Aufgabe 1 ist mit dem HEVC-MP4-Profil verknüpft und übernimmt Schnitte/Konvertierungen, aber keine Umbenennung bzw. keine Metadatenverwaltung.
Aufgabe 1 legt das Ergebnis in einen anderen Ordner, in dem eine Aufgabe nach TV-Sendungen und eine weitere nach Filmen überwacht. Beide Aufgaben erledigen benutzerdefiniertes Umbenennen und Metadatenabfrage, aber keine Konvertierung.

Um die Frage zu vereinfachen: Aufgabe 1 verarbeitet die Datei zuerst, danach übernimmt Aufgabe 2 den Schliff.
Ich habe Aufgabe 2 so eingestellt, dass sie neue Jobs ganz oben einfügt. Wenn ich jedoch eine ganze Reihe Dateien reinkopiere, möchte ich, dass sie so abgearbeitet werden:
Aufgabe 1
Aufgabe 2
Aufgabe 1
Aufgabe 2 usw.

Stattdessen läuft es, weil alle Jobs gleich zu Beginn eingelesen werden, so:
Aufgabe 1 – Datei 1
Aufgabe 1 – Datei 2
Aufgabe 2 – Datei 1
Aufgabe 1 – Datei 3
Aufgabe 2 – Datei 2

Ich versuche herauszufinden, wie man vor Aufgabe 1 eine Verzögerung einbauen kann, damit Aufgabe 2 die neue Datei oben in der Liste erkennt.
Hoffentlich ist das verständlich: Ich will nicht warten, bis Datei 2 die lange Konvertierung beendet hat, bevor Datei 1 fertig ist.
Ich dachte, eine Verzögerung nach jeder Aufgabe würde dem Scanner Zeit geben, neue Dateien zu erkennen. Das Einzige, was mir einfiel, war eine Verzögerung in der Nachbearbeitung, das scheint aber nicht zu funktionieren.

Du kannst die Task1-Aktion (Transkodierung) einfach in beide Umbenennungsaufgaben einbauen. Das mache ich so.

Ich habe separate Aufgaben für Filme, Serien, Sport und Specials (die 4 Typen, die MCEBuddy erkennen kann), jeweils mit unterschiedlichen Umbenennungs- und Zielordnern.

Tipp: Aktiviere Specials, da Sendungen, die weder als Film noch als Serie erkannt werden, dort landen. Das passiert meist, wenn die EPG-Daten vage sind oder nur den Sendungstitel enthalten. Manche Sub-Channels mit alten Wiederholungen machen das, ebenso PBS-Sendungen, die normalerweise nicht in TheTVDB oder MovieDB stehen.

Du musst sicherstellen, dass nur eine einzige Aufgabe auf die Eingabedatei angewendet wird.

Zusätzlich zur Typauswahl habe ich Kanalfilter für SD- und HD-Kanalquellen, die unterschiedliche Komprimierungs-/Qualitätswerte haben.

Ich habe darüber nachgedacht, aber ich habe die Umbenennungsaktionen getrennt (auch unterschiedliche Eingabeordner), damit ich gelegentlich Dateien direkt dorthin verschieben kann, sodass sie nur umbenannt und nicht neu kodiert werden.
Ich könnte natürlich eine separate Kopie davon behalten, aber dann müsste ich zwei Paare auf dem neuesten Stand halten. Also zwei Aufgaben für Fernsehsendungen (eine mit Transkodierung), die dieselben Auswahlfilter und dieselben Metadaten-Korrekturregeln benötigen.
Ich habe auch Nachbearbeitungs-Trigger, die ich bei jedem nächsten Upgrade an mehreren Stellen pflegen müsste, da diese nicht übernommen werden. In meinem Fall beinhaltet die Nachbearbeitung benutzerdefiniertes Umbenennen mit Daten, die für die Nachbearbeitung verfügbar sind, aber nicht für die Benennungsregeln.

Ich glaube nicht, dass es mit deinem Setup möglich ist, das zu erreichen, was du willst. Die Verzeichnis-Überwacher laufen parallel und fügen einfach nur Aufgaben zu den Warteschlangen für jede Aktion hinzu. Die Aufgaben selbst laufen ebenfalls alle parallel – eine Aufgabe hat keine Informationen über irgendeine andere. Die einzige Möglichkeit, Dinge zu „verketten“, ist also genau so, wie du es gemacht hast: Ein Überwacher auf Ordner1 löst Aufgabe1 aus, ein Überwacher auf Ordner2 löst Aufgabe2 aus, und das Letzte, was Aufgabe1 tut, ist, die Datei in Ordner2 abzulegen.

Entweder du lässt nur jeweils eine Datei gleichzeitig in den Startordner fallen und blockierst weitere, bis die Datei die letzte Aufgabe durchlaufen hat – oder du richtest für jeden „Flow“ separate Ordner mit separaten Überwachern und kopierten Aufgaben ein. Das klingt nach einem heißen Chaos. Mein Vorschlag: Nutze einen Batch-„Scheduler“, der selbst deinen echten Eingabeordner beobachtet und Dateien nur einzeln in den MCE-Startordner verschiebt, bis die Verarbeitung abgeschlossen ist. Das wird tricky, wenn eine Aufgabe fehlschlägt: 1) Fehler erkennen, 2) Wiederherstellung und Neustart für diese Datei definieren.

MCE Buddy ist einfach nicht für einen einzelnen linearen Workflow konzipiert – besonders nicht mit Multi-Core-CPUs, GPUs und mehreren MCE-Buddy-Engines. Die lineare Ablaufsteuerung muss also außerhalb von MCE Buddy erfolgen. Machbar ist das mit Marker-Dateien: Dein Scheduler beobachtet dieselben Ordner, legt nach der Bearbeitung leere Dateien als Statusmarker ab und nutzt das Dateisystem als Zustandsautomat.

Vielleicht lässt sich ein freiberuflicher Programmierer oder ein Informatikstudent damit beauftragen – ideal für jemanden mit Ingenieur-Denke und Zustandsmaschinen-Verständnis. Leere Dateien (existiert/nicht existiert) als Zustandspeicher sind vermutlich zu viel für einen Schüler im Grundkurs, aber man kann ja fragen. Für Freelancer gibt’s Plattformen, die Programmierer mit Automatisierungswünschen zusammenbringen.