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 Job-Schritt angeben. Wenn Sie in einem Schritt kein Limit angeben und dieser Schritt eine zugeordnete Ressource verwendet, wird die Nutzung des Schritts nicht auf das Limit angerechnet, wenn Jobs geplant werden.

Bei einigen Deadline Cloud-Einreichern können Sie eine Hostanforderung festlegen. Sie können den Namen des Limits im Absender angeben, um das Limit anzuwenden.

Wenn Ihr Einreicher das Hinzufügen von Hostanforderungen nicht unterstützt, können Sie auch ein Limit festlegen, indem Sie die Jobvorlage für den Job bearbeiten.

Um ein Limit auf einen Job-Schritt im Job-Bundle 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 Job-Pakete 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. amount.nameErsetzen Sie es durch den Namen der Mengenanforderung für Ihr Limit. 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 Namen der Mengenanforderungen 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 du Limits für alle Jobeinreichungen durchsetzen möchtest, ohne dass Künstler Jobvorlagen manuell bearbeiten müssen, kannst du einen Pre-Submission-Hook verwenden, um die Host-Anforderung bei der Einreichung automatisch in jede Jobvorlage einzufügen.

Ein Pre-Submission-Hook ist ein Skript, das ausgeführt wird, bevor der Job eingereicht wird. Der Hook kann die Job-Bundles änderntemplate.yaml, um den hostRequirements Betragseintrag für Ihr Limit hinzuzufügen. Dieser Ansatz stellt sicher, dass jeder Job, der über die Deadline Cloud CLI oder die DCC-Einreicher eingereicht wird, angibt, dass er die begrenzte Ressource benötigt.

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

End-to-end Beispiel: V-Ray Lizenzlimits durchsetzen

Dieses Beispiel zeigt, wie Sie ein Limit für 5 V-Ray Floating-Lizenzen einrichten und überprüfen, ob der Scheduler dieses Limit 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ügen Sie die Host-Anforderung zu Ihrer Jobvorlage hinzu:

    specificationVersion: jobtemplate-2023-09 name: My VRay Render 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 maxCount es vorübergehend auf 1 und reichen Sie zwei Jobs ein. Der erste Job wird ausgeführt, während der zweite solange im READY Status bleibt, bis der erste abgeschlossen ist.