View a markdown version of this page

Invia un lavoro che richiede dei limiti - Deadline Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Invia un lavoro che richiede dei limiti

Puoi applicare un limite specificandolo come requisito dell'host per il lavoro o la fase del lavoro. Se non specifichi un limite in una fase e tale fase utilizza una risorsa associata, l'utilizzo della fase non viene conteggiato nel limite quando vengono pianificati i lavori.

Alcuni inviatori di Deadline Cloud ti consentono di impostare un requisito per l'host. Puoi specificare il nome del requisito relativo all'importo del limite nel mittente per applicare il limite.

Se il mittente non supporta l'aggiunta dei requisiti per l'host, puoi anche applicare un limite modificando il modello di lavoro relativo al lavoro.

Per applicare un limite a una fase del job bundle
  1. Apri il modello di lavoro per il lavoro utilizzando un editor di testo. Il modello di lavoro si trova nella cartella del job bundle relativa al job. Per ulteriori informazioni, consulta Job bundle nella Deadline Cloud Developer Guide.

  2. Trova la definizione della fase a cui applicare il limite.

  3. Aggiungete quanto segue alla definizione del passo. Sostituisci amount.name con l'importo richiesto il nome del limite. Per un uso tipico, è necessario impostare il min valore su 1.

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

    È possibile aggiungere più limiti a una fase del lavoro come segue. Sostituisci amount.name_1 e amount.name_2 con i nomi dei requisiti di importo dei tuoi limiti.

    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. Salva le modifiche al modello di lavoro.

Automatizza i limiti con gli hook di invio

Se desideri applicare dei limiti a tutti gli invii di lavoro senza richiedere agli artisti di modificare manualmente i modelli di lavoro, puoi utilizzare un hook di pre-invio per inserire automaticamente i requisiti dell'host in ogni modello di lavoro al momento dell'invio.

Un hook di pre-invio è uno script che viene eseguito prima dell'invio del lavoro. L'hook può modificare i job bundle template.yaml per aggiungere hostRequirements gli importi previsti per il limite. Questo approccio garantisce che ogni lavoro inviato tramite la CLI di Deadline Cloud o i mittenti DCC dichiari di aver bisogno della risorsa limitata.

Per un esempio funzionante completo, consulta l'esempio di hook per l'invio dei limiti di licenza nel repository di esempi di Deadline Cloud.

End-to-end esempio: applicare i limiti di V-Ray licenza

Questo esempio mostra come impostare un limite per 5 licenze V-Ray mobili e verificare che lo scheduler lo applichi.

Per impostare e testare un limite di licenza V-Ray
  1. Crea il limite per la tua fattoria:

    aws deadline create-limit \ --farm-id farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --display-name "VRay License" \ --amount-requirement-name "amount.vray" \ --max-count 5
  2. Associa il limite alla tua coda:

    aws deadline create-queue-limit-association \ --farm-id farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --queue-id queue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --limit-id limit-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  3. Aggiungi il requisito dell'host al tuo modello di lavoro:

    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. Invia il lavoro. Lo scheduler consente l'esecuzione simultanea di un massimo amount.vray di 5 attività su tutti i lavori in coda. Le attività aggiuntive rimangono READY nello stato fino a quando non diventa disponibile uno slot.

Per verificare che il limite funzioni, imposta temporaneamente maxCount a 1 e invia due lavori. Il primo processo viene eseguito mentre il secondo rimane nello READY stato fino al completamento del primo.