View a markdown version of this page

Soumettre une offre d'emploi nécessitant des limites - Deadline Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Soumettre une offre d'emploi nécessitant des limites

Vous appliquez une limite en la spécifiant comme exigence d'hôte pour le travail ou l'étape du travail. Si vous ne spécifiez pas de limite dans une étape et que cette étape utilise une ressource associée, l'utilisation de l'étape n'est pas prise en compte dans la limite lorsque les tâches sont planifiées.

Certains émetteurs de Deadline Cloud vous permettent de définir une exigence en matière d'hôte. Vous pouvez spécifier le nom du montant requis pour la limite dans l'expéditeur pour appliquer la limite.

Si votre auteur ne prend pas en charge l'ajout d'exigences relatives à l'hôte, vous pouvez également appliquer une limite en modifiant le modèle de tâche correspondant à la tâche.

Pour appliquer une limite à une étape de tâche dans le lot de tâches
  1. Ouvrez le modèle de tâche correspondant à la tâche à l'aide d'un éditeur de texte. Le modèle de tâche se trouve dans le répertoire des ensembles de tâches correspondant à la tâche. Pour plus d'informations, consultez la section Job bundles dans le guide du développeur de Deadline Cloud.

  2. Trouvez la définition de l'étape à laquelle appliquer la limite.

  3. Ajoutez ce qui suit à la définition de l'étape. Remplacez amount.name le nom de votre limite par le montant requis. Pour une utilisation normale, vous devez définir la min valeur sur 1.

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

    Vous pouvez ajouter plusieurs limites à une étape de travail comme suit. Remplacez amount.name_1 et amount.name_2 par les noms des exigences relatives au montant de vos limites.

    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. Enregistrez les modifications apportées au modèle de tâche.

Automatisez les limites avec des crochets de soumission

Si vous souhaitez imposer des limites à toutes les soumissions de tâches sans obliger les artistes à modifier manuellement les modèles de tâches, vous pouvez utiliser un crochet de pré-soumission pour injecter automatiquement l'exigence d'hôte dans chaque modèle de travail au moment de la soumission.

Un hook de pré-soumission est un script qui s'exécute avant que la tâche ne soit soumise. Le hook peut modifier les offres d'emploi template.yaml pour ajouter les hostRequirements montants à saisir pour votre limite. Cette approche garantit que chaque tâche soumise par le biais de la CLI de Deadline Cloud ou des émetteurs DCC déclare avoir besoin de cette ressource limitée.

Pour un exemple pratique complet, consultez l'exemple de crochet de soumission des limites de licence dans le référentiel d'exemples de Deadline Cloud.

End-to-end exemple : appliquer les limites V-Ray de licence

Cet exemple montre comment définir une limite pour 5 licences V-Ray flottantes et vérifier que le planificateur l'applique.

Pour configurer et tester une limite V-Ray de licence
  1. Définissez la limite pour votre ferme :

    aws deadline create-limit \ --farm-id farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --display-name "VRay License" \ --amount-requirement-name "amount.vray" \ --max-count 5
  2. Associez la limite à votre file d'attente :

    aws deadline create-queue-limit-association \ --farm-id farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --queue-id queue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --limit-id limit-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  3. Ajoutez l'exigence d'hôte à votre modèle de travail :

    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. Soumettez le travail. Le planificateur autorise au maximum 5 tâches amount.vray à exécuter simultanément sur toutes les tâches de la file d'attente. Les tâches supplémentaires restent inchangées jusqu'READYà ce qu'un créneau soit disponible.

Pour vérifier que la limite fonctionne, maxCount réglez-la temporairement sur 1 et soumettez deux tâches. La première tâche s'exécute tandis que la seconde reste inchangée jusqu'READYà ce que la première soit terminée.