Compartilhar via


JobManagerTask Classe

Especifica os detalhes de uma tarefa do Gerenciador de Trabalhos.

A Tarefa Gerenciador de Trabalhos é iniciada automaticamente quando o Trabalho é criado. O serviço lote tenta agendar a Tarefa do Gerenciador de Trabalhos antes de qualquer outra Tarefa no Trabalho. Ao reduzir um Pool, o serviço do Lote tenta preservar nós em que as Tarefas do Gerenciador de Trabalhos estão em execução pelo maior tempo possível (ou seja, os nós de computação que executam tarefas 'normais' são removidos antes que os Nós de Computação que executam tarefas do Gerenciador de Trabalho). Quando uma tarefa do Gerenciador de Trabalhos falha e precisa ser reiniciada, o sistema tenta agendá-la com a prioridade mais alta. Se não houver nós de computação ociosos disponíveis, o sistema poderá encerrar uma das Tarefas em execução no Pool e retorná-la à fila para liberar espaço para a tarefa do Gerenciador de Trabalhos reiniciar. Observe que uma tarefa do Gerenciador de Trabalhos em um trabalho não tem prioridade sobre tarefas em outros trabalhos. Em Trabalhos, apenas as prioridades de nível de trabalho são observadas. Por exemplo, se um Gerenciador de Trabalhos em um trabalho de prioridade 0 precisar ser reiniciado, ele não deslocará Tarefas de um Trabalho de prioridade 1. O Lote repetirá Tarefas quando uma operação de recuperação for disparada em um Nó. Exemplos de operações de recuperação incluem (mas não se limitam a) quando um nó não íntegro é reinicializado ou um Nó de Computação desapareceu devido a uma falha no host. As novas tentativas devido a operações de recuperação são independentes de e não são contadas em relação a maxTaskRetryCount. Mesmo que maxTaskRetryCount seja 0, poderá ocorrer uma repetição interna devido a uma operação de recuperação. Por isso, todas as Tarefas devem ser idempotentes. Isso significa que as tarefas precisam tolerar que sejam interrompidas e reiniciadas sem causar dados corrompidos ou duplicados. A melhor prática para tarefas de execução prolongada é usar alguma forma de ponto de verificação.

Todos os parâmetros necessários devem ser preenchidos para enviar ao Azure.

Herança
JobManagerTask

Construtor

JobManagerTask(*, id: str, command_line: str, display_name: str = None, container_settings=None, resource_files=None, output_files=None, environment_settings=None, constraints=None, required_slots: int = None, kill_job_on_completion: bool = None, user_identity=None, run_exclusive: bool = None, application_package_references=None, authentication_token_settings=None, allow_low_priority_node: bool = None, **kwargs)

Parâmetros

id
str
Obrigatório

Obrigatórios. A ID pode conter qualquer combinação de caracteres alfanuméricos, incluindo hifens e sublinhados, e não pode conter mais de 64 caracteres.

display_name
str
Obrigatório

Ele não precisa ser exclusivo e pode conter caracteres Unicode até um comprimento máximo de 1024.

command_line
str
Obrigatório

Obrigatórios. A linha de comando não é executada em um shell e, portanto, não pode aproveitar os recursos do shell, como a expansão da variável de ambiente. Se você quiser aproveitar esses recursos, invoque o shell na linha de comando, por exemplo, usando "cmd /c MyCommand" no Windows ou "/bin/sh -c MyCommand" no Linux. Se a linha de comando se referir a caminhos de arquivo, ela deverá usar um caminho relativo (em relação ao diretório de trabalho tarefa) ou usar a variável de ambiente fornecida pelo Lote (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

container_settings
TaskContainerSettings
Obrigatório

As configurações para o contêiner no qual a Tarefa Gerenciador de Trabalhos é executada. Se o Pool que executará essa Tarefa tiver containerConfiguration definido, isso também deverá ser definido. Se o Pool que executará essa Tarefa não tiver containerConfiguration definido, isso não deverá ser definido. Quando isso é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz de Lote do Azure diretórios no nó) são mapeados para o contêiner, todas as variáveis de ambiente de tarefa são mapeadas para o contêiner e a linha de comando Tarefa é executada no contêiner. Os arquivos produzidos no contêiner fora do AZ_BATCH_NODE_ROOT_DIR podem não ser refletidos no disco do host, o que significa que as APIs de arquivo do Lote não poderão acessar esses arquivos.

resource_files
list[ResourceFile]
Obrigatório

Os arquivos listados sob esse elemento estão localizados no diretório de trabalho da Tarefa. Há um tamanho máximo para a lista de arquivos de recurso. Quando o tamanho máximo for excedido, a solicitação falhará e o código de erro de resposta será RequestEntityTooLarge. Se isso ocorrer, a coleção de ResourceFiles deverá ser reduzida em tamanho. Isso pode ser obtido usando arquivos .zip, Pacotes de Aplicativos ou Contêineres do Docker.

output_files
list[OutputFile]
Obrigatório

Para tarefas de várias instâncias, os arquivos serão carregados apenas do Nó de Computação no qual a Tarefa primária é executada.

environment_settings
list[EnvironmentSetting]
Obrigatório
constraints
TaskConstraints
Obrigatório

Restrições que se aplicam à Tarefa Gerenciador de Trabalhos.

required_slots
int
Obrigatório

O número de slots de agendamento necessários para execução da Tarefa. O padrão é 1. Uma Tarefa só poderá ser agendada para ser executada em um nó de computação se o nó tiver slots de agendamento gratuitos suficientes disponíveis. Para tarefas de várias instâncias, essa propriedade não tem suporte e não deve ser especificada.

kill_job_on_completion
bool
Obrigatório

Se a conclusão da Tarefa gerenciador de trabalho significa a conclusão de todo o Trabalho. Se for true, quando a Tarefa gerenciador de trabalho for concluída, o serviço do Lote marcará o Trabalho como concluído. Se alguma Tarefa ainda estiver em execução no momento (diferente da versão do trabalho), essas tarefas serão encerradas. Se for false, a conclusão da Tarefa Gerenciador de Trabalhos não afetará a status de Trabalho. Nesse caso, você deve usar o atributo onAllTasksComplete para encerrar o Trabalho ou fazer com que um cliente ou usuário encerre o Trabalho explicitamente. Um exemplo disso é se o Gerenciador de Trabalho cria um conjunto de Tarefas, mas não assume nenhuma função adicional em sua execução. O valor padrão é true. Se você estiver usando os atributos onAllTasksComplete e onTaskFailure para controlar o tempo de vida do trabalho e usar a Tarefa do Gerenciador de Trabalhos apenas para criar as Tarefas para o Trabalho (não para monitorar o progresso), é importante definir killJobOnCompletion como false.

user_identity
UserIdentity
Obrigatório

A identidade do usuário sob a qual a Tarefa Gerenciador de Trabalhos é executada. Se omitida, a Tarefa será executada como um usuário não administrativo exclusivo para a Tarefa.

run_exclusive
bool
Obrigatório

Se a Tarefa Gerenciador de Trabalho requer uso exclusivo do Nó de Computação em que ela é executada. Se for true, nenhuma outra Tarefa será executada no mesmo nó enquanto o Gerenciador de Trabalho estiver em execução. Se for false, outras tarefas poderão ser executadas simultaneamente com o Gerenciador de Trabalho em um Nó de Computação. A Tarefa do Gerenciador de Trabalhos conta normalmente em relação ao limite de Tarefa simultânea do Nó de Computação, portanto, isso só será relevante se o Nó de Computação permitir várias Tarefas Simultâneas. O valor padrão é true.

application_package_references
list[ApplicationPackageReference]
Obrigatório

Os Pacotes de Aplicativos são baixados e implantados em um diretório compartilhado, não no diretório de trabalho da Tarefa. Portanto, se um Pacote de Aplicativo referenciado já estiver no Nó de Computação e estiver atualizado, ele não será baixado novamente; a cópia existente no Nó de Computação é usada. Se um Pacote de Aplicativo referenciado não puder ser instalado, por exemplo, porque o pacote foi excluído ou porque o download falhou, a Tarefa falhará.

authentication_token_settings
AuthenticationTokenSettings
Obrigatório

As configurações de um token de autenticação que a Tarefa pode usar para executar operações de serviço do Lote. Se essa propriedade estiver definida, o serviço lote fornecerá à Tarefa um token de autenticação que pode ser usado para autenticar operações de serviço do Lote sem a necessidade de uma chave de acesso da conta. O token é fornecido por meio da variável de ambiente AZ_BATCH_AUTHENTICATION_TOKEN. As operações que a Tarefa pode realizar usando o token dependem das configurações. Por exemplo, uma Tarefa pode solicitar permissões de trabalho para adicionar outras Tarefas ao Trabalho ou marcar o status do Trabalho ou de outras Tarefas no Trabalho.

allow_low_priority_node
bool
Obrigatório

Se a Tarefa Gerenciador de Trabalhos pode ser executada em um nó de computação spot/de baixa prioridade. O valor padrão é true.

Métodos

as_dict

Retornar um ditado que pode ser JSONify usando json.dump.

O uso avançado pode, opcionalmente, usar um retorno de chamada como parâmetro:

Key é o nome do atributo usado no Python. Attr_desc é um ditado de metadados. Atualmente, contém 'type' com o tipo msrest e 'key' com a chave codificada restAPI. Value é o valor atual neste objeto.

A cadeia de caracteres retornada será usada para serializar a chave. Se o tipo de retorno for uma lista, isso será considerado um dict de resultado hierárquico.

Confira os três exemplos neste arquivo:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Se você quiser serialização XML, poderá passar os kwargs is_xml=True.

deserialize

Analise um str usando a sintaxe RestAPI e retorne um modelo.

enable_additional_properties_sending
from_dict

Analisar um ditado usando determinado extrator de chave retorna um modelo.

Por padrão, considere extratores de chave (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor e last_rest_key_case_insensitive_extractor)

is_xml_model
serialize

Retorne o JSON que seria enviado para o azure desse modelo.

Esse é um alias para as_dict(full_restapi_key_transformer, keep_readonly=False).

Se você quiser serialização XML, poderá passar os kwargs is_xml=True.

validate

Valide esse modelo recursivamente e retorne uma lista de ValidationError.

as_dict

Retornar um ditado que pode ser JSONify usando json.dump.

O uso avançado pode, opcionalmente, usar um retorno de chamada como parâmetro:

Key é o nome do atributo usado no Python. Attr_desc é um ditado de metadados. Atualmente, contém 'type' com o tipo msrest e 'key' com a chave codificada restAPI. Value é o valor atual neste objeto.

A cadeia de caracteres retornada será usada para serializar a chave. Se o tipo de retorno for uma lista, isso será considerado um dict de resultado hierárquico.

Confira os três exemplos neste arquivo:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Se você quiser serialização XML, poderá passar os kwargs is_xml=True.

as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)

Parâmetros

key_transformer
<xref:function>

Uma função de transformador de chave.

keep_readonly
valor padrão: True

Retornos

Um objeto compatível com JSON de ditado

Tipo de retorno

deserialize

Analise um str usando a sintaxe RestAPI e retorne um modelo.

deserialize(data, content_type=None)

Parâmetros

data
str
Obrigatório

Um str usando a estrutura RestAPI. JSON por padrão.

content_type
str
valor padrão: None

JSON por padrão, defina application/xml se XML.

Retornos

Uma instância desse modelo

Exceções

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

Analisar um ditado usando determinado extrator de chave retorna um modelo.

Por padrão, considere extratores de chave (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor e last_rest_key_case_insensitive_extractor)

from_dict(data, key_extractors=None, content_type=None)

Parâmetros

data
dict
Obrigatório

Um ditado usando a estrutura RestAPI

content_type
str
valor padrão: None

JSON por padrão, defina application/xml se XML.

key_extractors
valor padrão: None

Retornos

Uma instância desse modelo

Exceções

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

Retorne o JSON que seria enviado para o azure desse modelo.

Esse é um alias para as_dict(full_restapi_key_transformer, keep_readonly=False).

Se você quiser serialização XML, poderá passar os kwargs is_xml=True.

serialize(keep_readonly=False, **kwargs)

Parâmetros

keep_readonly
bool
valor padrão: False

Se você quiser serializar os atributos somente leitura

Retornos

Um objeto compatível com JSON de dict

Tipo de retorno

validate

Valide esse modelo recursivamente e retorne uma lista de ValidationError.

validate()

Retornos

Uma lista de erros de validação

Tipo de retorno