View a markdown version of this page

Reichen Sie einen Job ein, der Limits erfordert - Deadline Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Reichen Sie einen Job ein, der Limits erfordert

Sie wenden ein Limit an, indem Sie es als Hostanforderung für den Job oder den Jobschritt angeben. Wenn Sie in einem Schritt kein Limit angeben und dieser Schritt eine zugeordnete Ressource verwendet, wird die Nutzung des Steps bei der Planung von Jobs nicht auf das Limit angerechnet.

Bei einigen Absendern von Deadline Cloud können Sie eine Hostanforderung festlegen. Sie können den Namen der Betragsanforderung im Absender angeben, um das Limit anzuwenden.

Wenn dein Absender das Hinzufügen von Anforderungen für Gastgeber nicht unterstützt, kannst du auch ein Limit festlegen, indem du die Jobvorlage für den Job bearbeitest.

Um ein Limit auf einen Job-Schritt im Job-Paket anzuwenden
  1. Öffnen Sie die Jobvorlage für den Job mit einem Texteditor. Die Jobvorlage befindet sich im Job-Bundle-Verzeichnis für den Job. Weitere Informationen finden Sie unter Jobpakete im Deadline Cloud Developer Guide.

  2. Suchen Sie die Schrittdefinition für den Schritt, auf den das Limit angewendet werden soll.

  3. Fügen Sie der Schrittdefinition Folgendes hinzu. Ersetzen Sie das amount.name Limit durch den Namen der Betragsanforderung. Für den typischen Gebrauch sollten Sie den min Wert auf 1 setzen.

    YAML
    hostRequirements: amounts: - name: amount.name min: 1
    JSON
    "hostRequirements": { "amounts": [ { "name": "amount.name", "min": "1" } ] }

    Sie können einem Auftragsschritt wie folgt mehrere Grenzwerte hinzufügen. Ersetzen Sie amount.name_1 und amount.name_2 durch die Betragsanforderungen Ihrer Limits.

    YAML
    hostRequirements: amounts: - name: amount.name_1 min: 1 - name: amount.name_2 min: 1
    JSON
    "hostRequirements": { "amounts": [ { "name": "amount.name_1", "min": "1" }, { "name": "amount.name_2", "min": "1" } ] }
  4. Speichern Sie die Änderungen an der Jobvorlage.

Automatisieren Sie Limits mit Submission-Hooks

Wenn Sie Grenzwerte für alle Stellenausschreibungen durchsetzen möchten, ohne dass Künstler die Jobvorlagen manuell bearbeiten müssen, können Sie einen Hook vor der Einreichung verwenden, um die Host-Anforderung automatisch bei der Einreichung in jede Jobvorlage einzufügen.

Ein Hook vor der Einreichung ist ein Skript, das ausgeführt wird, bevor der Job eingereicht wird. Der Hook kann die Job-Pakete so änderntemplate.yaml, dass die für Ihr Limit eingegebenen hostRequirements Beträge hinzugefügt werden. Dieser Ansatz stellt sicher, dass jeder Job, der über die Deadline Cloud CLI eingereicht wird, oder die DCC-Absender angeben, dass er die begrenzte Ressource benötigt.

Ein vollständiges Arbeitsbeispiel finden Sie im Beispiel für die Einreichung von Lizenzbeschränkungen im Beispiel-Repository von Deadline Cloud.

End-to-end Beispiel: V-Ray Lizenzbeschränkungen durchsetzen

Dieses Beispiel zeigt, wie Sie ein Limit für 5 V-Ray Floating-Lizenzen einrichten und überprüfen, ob der Scheduler es durchsetzt.

Um ein Lizenzlimit einzurichten und zu V-Ray testen
  1. Erstellen Sie das Limit für Ihre Farm:

    aws deadline create-limit \ --farm-id farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --display-name "VRay License" \ --amount-requirement-name "amount.vray" \ --max-count 5
  2. Ordnen Sie das Limit Ihrer Warteschlange zu:

    aws deadline create-queue-limit-association \ --farm-id farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --queue-id queue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --limit-id limit-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  3. Füge die Host-Anforderung zu deiner Job-Vorlage hinzu:

    specificationVersion: jobtemplate-2023-09 name: My VRay Render parameterDefinitions: - name: SceneFile type: PATH objectType: FILE dataFlow: IN steps: - name: Render hostRequirements: amounts: - name: amount.vray min: 1 script: actions: onRun: command: vray args: ["-scene", "{{Param.SceneFile}}"]
  4. Reichen Sie den Job ein. Der Scheduler ermöglicht die gleichzeitige Ausführung von maximal 5 Aufgaben für alle Jobs in der Warteschlange. amount.vray Zusätzliche Aufgaben bleiben im READY Status, bis ein Slot verfügbar wird.

Um zu überprüfen, ob das Limit funktioniert, setzen Sie ihn vorübergehend maxCount auf 1 und senden Sie zwei Jobs ab. Der erste Auftrag wird ausgeführt, während der zweite im READY Status verbleibt, bis der erste abgeschlossen ist.