View a markdown version of this page

Envie um trabalho que exija limites - Nuvem de prazos

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Envie um trabalho que exija limites

Você aplica um limite especificando-o como um requisito de host para o trabalho ou etapa do trabalho. Se você não especificar um limite em uma etapa e essa etapa usar um recurso associado, o uso da etapa não será contabilizado no limite quando os trabalhos forem agendados.

Alguns remetentes do Deadline Cloud permitem que você defina um requisito de anfitrião. Você pode especificar o nome do requisito de valor do limite no remetente para aplicar o limite.

Se o remetente não aceitar a adição de requisitos de hospedagem, você também pode aplicar um limite editando o modelo de trabalho para o trabalho.

Para aplicar um limite a uma etapa do trabalho no pacote de tarefas
  1. Abra o modelo de trabalho para o trabalho usando um editor de texto. O modelo de trabalho está localizado no diretório do pacote de tarefas do trabalho. Para obter mais informações, consulte Pacotes de tarefas no Guia do desenvolvedor do Deadline Cloud.

  2. Encontre a definição da etapa à qual aplicar o limite.

  3. Adicione o seguinte à definição da etapa. amount.nameSubstitua pelo nome do valor exigido do seu limite. Para uso típico, você deve definir o min valor como 1.

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

    Você pode adicionar vários limites a uma etapa do trabalho da seguinte maneira. Substitua amount.name_1 e amount.name_2 pelos nomes dos requisitos de valor de seus 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. Salve as alterações no modelo de trabalho.

Automatize os limites com ganchos de envio

Se você quiser impor limites em todos os envios de trabalhos sem exigir que os artistas editem manualmente os modelos de trabalho, você pode usar um gancho de pré-envio para injetar automaticamente a exigência de anfitrião em cada modelo de trabalho no momento do envio.

Um gancho de pré-envio é um script executado antes do envio do trabalho. O gancho pode modificar o pacote de tarefas template.yaml para adicionar a entrada de hostRequirements valores ao seu limite. Essa abordagem garante que cada trabalho enviado por meio da CLI do Deadline Cloud ou dos remetentes do DCC declare sua necessidade do recurso limitado.

Para ver um exemplo funcional completo, consulte a amostra do gancho de envio de limites de licença no repositório de amostras do Deadline Cloud.

End-to-end exemplo: impor limites de V-Ray licença

Este exemplo mostra como configurar um limite para 5 licenças V-Ray flutuantes e verificar se o agendador o aplica.

Para configurar e testar um limite V-Ray de licença
  1. Crie o limite em sua fazenda:

    aws deadline create-limit \ --farm-id farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --display-name "VRay License" \ --amount-requirement-name "amount.vray" \ --max-count 5
  2. Associe o limite à sua fila:

    aws deadline create-queue-limit-association \ --farm-id farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --queue-id queue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \ --limit-id limit-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  3. Adicione o requisito de anfitrião ao seu modelo de trabalho:

    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. Envie o trabalho. O agendador permite que no máximo 5 tarefas amount.vray sejam executadas simultaneamente em todos os trabalhos na fila. Tarefas adicionais permanecem no READY estado até que um espaço fique disponível.

Para verificar se o limite está funcionando, maxCount defina temporariamente como 1 e envie dois trabalhos. O primeiro trabalho é executado enquanto o segundo permanece no READY estado até que o primeiro seja concluído.