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 si specifica un limite in una fase e tale fase utilizza una risorsa associata, l'utilizzo della fase non viene conteggiato nel limite quando i lavori sono pianificati.

Alcuni mittenti di Deadline Cloud ti consentono di impostare un requisito di 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 dell'host, puoi anche applicare un limite modificando il modello di lavoro relativo al lavoro.

Per applicare un limite a una fase di lavoro nel pacchetto di lavoro
  1. Apri il modello di lavoro per il lavoro utilizzando un editor di testo. Il modello di lavoro si trova nella directory dei pacchetti di lavoro relativa al lavoro. Per ulteriori informazioni, consulta Job bundles nella Deadline Cloud Developer Guide.

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

  3. Aggiungi quanto segue alla definizione del passo. amount.nameSostituiscilo con il nome del requisito relativo all'importo del limite. Per un utilizzo 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 di lavoro come segue. Sostituisci amount.name_1 e amount.name_2 inserisci i nomi dei requisiti relativi agli importi indicati nei 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 tutte le offerte di lavoro senza richiedere agli artisti di modificare manualmente i modelli di lavoro, puoi utilizzare un hook di pre-invio per inserire automaticamente il requisito 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 pacchetti di lavoro template.yaml per aggiungere hostRequirements gli importi da inserire 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 nell'archivio degli esempi di Deadline Cloud.

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

Questo esempio mostra come impostare un limite per 5 licenze V-Ray fluttuanti 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 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 nello READY stato fino a quando non diventa disponibile uno slot.

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