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 poste ou l'étape du poste. 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 des exigences en matière d'hôte. Vous pouvez spécifier le nom de l'exigence de montant de la limite dans l'expéditeur pour appliquer la limite.

Si votre auteur ne prend pas en charge l'ajout d'exigences en matière d'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 du job bundle
  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 offres d'emploi correspondant à la tâche. Pour plus d'informations, consultez la section Offres d'emploi dans le Guide du développeur 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. amount.nameRemplacez-le par le nom du montant requis pour votre limite. 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 tâche comme suit. Remplacez amount.name_1 et amount.name_2 par le nom des exigences de 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 appliquer des limites à toutes les offres d'emploi sans obliger les artistes à modifier manuellement les modèles de poste, vous pouvez utiliser un hook de pré-soumission pour injecter automatiquement l'exigence d'hôte dans chaque modèle de poste 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 saisis pour votre limite. Cette approche garantit que chaque tâche soumise via la CLI Deadline Cloud ou les soumissionnaires DCC déclare qu'elle a besoin d'une ressource limitée.

Pour un exemple fonctionnel complet, consultez l'exemple de hook de soumission des limites de licence dans le référentiel d'exemples 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. Créez 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 les exigences relatives à l'accueil à votre modèle de poste :

    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. Soumettez la tâche. Le planificateur permet d'exécuter au maximum 5 tâches simultanément sur toutes les tâches de la file d'attente. amount.vray Les tâches supplémentaires restent en cours 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 est exécutée tandis que la seconde reste dans READY cet état jusqu'à ce que la première soit terminée.