Partilhar via


JobManagerTask Classe

Especifica os detalhes de uma Tarefa do Gestor de Tarefas.

A Tarefa do Gestor de Tarefas é iniciada automaticamente quando a Tarefa é criada. O serviço Batch tenta agendar a Tarefa do Gestor de Tarefas antes de quaisquer outras Tarefas na Tarefa. Ao encolher um Conjunto, o serviço Batch tenta preservar os Nós em que as Tarefas do Gestor de Tarefas estão a ser executadas durante o máximo de tempo possível (ou seja, os Nós de Computação que executam Tarefas "normais" são removidos antes dos Nós de Computação que executam Tarefas do Gestor de Tarefas). Quando uma Tarefa do Gestor de Tarefas falha e precisa de ser reiniciada, o sistema tenta agende-a com a prioridade mais alta. Se não existirem Nós de Computação inativos disponíveis, o sistema poderá terminar uma das Tarefas em execução no Conjunto e devolvê-la à fila para libertar espaço para que a Tarefa do Gestor de Tarefas seja reiniciada. Tenha em atenção que uma Tarefa do Gestor de Tarefas numa Tarefa não tem prioridade sobre Tarefas noutras Tarefas. Em Tarefas, são observadas apenas as prioridades ao nível do trabalho. Por exemplo, se um Gestor de Tarefas numa Tarefa de prioridade 0 precisar de ser reiniciado, não irá deslocar Tarefas de uma Tarefa de prioridade 1. O Batch repetirá tarefas quando uma operação de recuperação for acionada num Nó. Exemplos de operações de recuperação incluem (mas não estão limitados a) quando um Nó em mau estado de funcionamento é reiniciado ou um Nó de Computação desapareceu devido a uma falha do anfitrião. As repetições devido a operações de recuperação são independentes e não são contabilizadas em relação a maxTaskRetryCount. Mesmo que maxTaskRetryCount seja 0, pode ocorrer uma repetição interna devido a uma operação de recuperação. Por este motivo, todas as Tarefas devem ser idempotentes. Isto significa que as Tarefas têm de tolerar ser interrompidas e reiniciadas sem causar danos ou dados duplicados. A melhor prática para tarefas de execução prolongada é utilizar algum tipo de ponto de verificação.

Todos os parâmetros necessários têm de ser preenchidos para enviar para o 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
Necessário

Obrigatório. O ID pode conter qualquer combinação de carateres alfanuméricos, incluindo hífenes e carateres de sublinhado, e não pode conter mais de 64 carateres.

display_name
str
Necessário

Não tem de ser exclusivo e pode conter carateres Unicode até um comprimento máximo de 1024.

command_line
str
Necessário

Obrigatório. A linha de comandos não é executada sob uma shell e, por conseguinte, não pode tirar partido das funcionalidades da shell, como a expansão da variável de ambiente. Se quiser tirar partido destas funcionalidades, deve invocar a shell na linha de comandos, por exemplo, utilizando "cmd /c MyCommand" no Windows ou "/bin/sh -c MyCommand" no Linux. Se a linha de comandos se referir a caminhos de ficheiro, deve utilizar um caminho relativo (relativamente ao diretório de trabalho da tarefa) ou utilizar a variável de ambiente fornecido pelo Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

container_settings
TaskContainerSettings
Necessário

As definições do contentor no qual a Tarefa do Gestor de Tarefas é executada. Se o Conjunto que irá executar esta Tarefa tiver containerConfiguration definido, este também tem de ser definido. Se o Conjunto que irá executar esta Tarefa não tiver containerConfiguration definido, isto não pode ser definido. Quando for especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz dos diretórios Azure Batch no nó) são mapeados para o contentor, todas as variáveis de ambiente de tarefas são mapeadas para o contentor e a linha de comandos Tarefa é executada no contentor. Os ficheiros produzidos no contentor fora do AZ_BATCH_NODE_ROOT_DIR podem não ser refletidos no disco anfitrião, o que significa que as APIs de ficheiro do Batch não poderão aceder a esses ficheiros.

resource_files
list[ResourceFile]
Necessário

Os ficheiros listados neste elemento estão localizados no diretório de trabalho da Tarefa. Existe um tamanho máximo para a lista de ficheiros de recursos. Quando o tamanho máximo for excedido, o pedido falhará e o código de erro de resposta será RequestEntityTooLarge. Se isto ocorrer, a coleção de ResourceFiles tem de ser reduzida em tamanho. Isto pode ser conseguido com .zip ficheiros, Pacotes de Aplicações ou Contentores do Docker.

output_files
list[OutputFile]
Necessário

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

environment_settings
list[EnvironmentSetting]
Necessário
constraints
TaskConstraints
Necessário

Restrições que se aplicam à Tarefa do Gestor de Tarefas.

required_slots
int
Necessário

O número de blocos de agendamento necessários para a execução da Tarefa. A predefinição é 1. Uma Tarefa só pode ser agendada para ser executada num nó de computação se o nó tiver blocos de agendamento gratuitos suficientes disponíveis. Para tarefas de várias instâncias, esta propriedade não é suportada e não pode ser especificada.

kill_job_on_completion
bool
Necessário

Se a conclusão da Tarefa do Gestor de Tarefas significa a conclusão de toda a Tarefa. Se for verdadeiro, quando a Tarefa do Gestor de Tarefas for concluída, o serviço Batch marca a Tarefa como concluída. Se alguma Tarefa ainda estiver em execução neste momento (para além da Versão da Tarefa), essas Tarefas serão terminadas. Se for falso, a conclusão da Tarefa do Gestor de Tarefas não afeta o estado da Tarefa. Neste caso, deve utilizar o atributo onAllTasksComplete para terminar a Tarefa ou fazer com que um cliente ou utilizador termine explicitamente a Tarefa. Um exemplo disso é se o Gestor de Tarefas criar um conjunto de Tarefas, mas não assumir mais nenhuma função na execução. O valor predefinido é true. Se estiver a utilizar os atributos onAllTasksComplete e onTaskFailure para controlar a duração da tarefa e utilizar a Tarefa do Gestor de Tarefas apenas para criar as Tarefas para a Tarefa (não para monitorizar o progresso), é importante definir killJobOnCompletion como falso.

user_identity
UserIdentity
Necessário

A identidade de utilizador na qual a Tarefa do Gestor de Tarefas é executada. Se omitido, a Tarefa é executada como um utilizador não administrativo exclusivo da Tarefa.

run_exclusive
bool
Necessário

Se a Tarefa do Gestor de Tarefas requer a utilização exclusiva do Nó de Computação onde é executada. Se for verdade, nenhuma outra Tarefa será executada no mesmo Nó enquanto o Gestor de Tarefas estiver em execução. Se for falso, outras Tarefas podem ser executadas em simultâneo com o Gestor de Tarefas num Nó de Computação. A Tarefa do Gestor de Tarefas conta normalmente em relação ao limite de Tarefas simultâneas do Nó de Computação, pelo que isto só é relevante se o Nó de Computação permitir várias Tarefas simultâneas. O valor predefinido é true.

application_package_references
list[ApplicationPackageReference]
Necessário

Os Pacotes de Aplicações são transferidos e implementados num diretório partilhado e não no diretório de trabalho da tarefa. Portanto, se um Pacote de Aplicação referenciado já estiver no Nó de Computação e estiver atualizado, não será transferido novamente; é utilizada a cópia existente no Nó de Computação. Se não for possível instalar um Pacote de Aplicação referenciado, por exemplo, porque o pacote foi eliminado ou porque a transferência falhou, a Tarefa falha.

authentication_token_settings
AuthenticationTokenSettings
Necessário

As definições de um token de autenticação que a Tarefa pode utilizar para efetuar operações de serviço do Batch. Se esta propriedade estiver definida, o serviço Batch fornece à Tarefa um token de autenticação que pode ser utilizado para autenticar operações de serviço do Batch sem precisar de uma chave de acesso de Conta. O token é fornecido através da variável de ambiente AZ_BATCH_AUTHENTICATION_TOKEN. As operações que a Tarefa pode realizar com o token dependem das definições. Por exemplo, uma Tarefa pode pedir permissões de Tarefa para adicionar outras Tarefas à Tarefa ou verificar o estado da Tarefa ou de outras Tarefas na Tarefa.

allow_low_priority_node
bool
Necessário

Se a Tarefa do Gestor de Tarefas pode ser executada num Nó de Computação Spot/De baixa prioridade. O valor predefinido é true.

Métodos

as_dict

Devolva um ditado que pode ser JSONify com json.dump.

Opcionalmente, a utilização avançada pode utilizar uma chamada de retorno como parâmetro:

A chave é o nome do atributo utilizado no Python. Attr_desc é um ditado dos metadados. Atualmente contém "type" com o tipo msrest e "key" com a chave codificada RestAPI. Valor é o valor atual neste objeto.

A cadeia devolvida será utilizada para serializar a chave. Se o tipo de retorno for uma lista, este é considerado ditado de resultado hierárquico.

Veja os três exemplos neste ficheiro:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Se quiser serialização XML, pode passar os kwargs is_xml=True.

deserialize

Analise um str com a sintaxe RestAPI e devolva um modelo.

enable_additional_properties_sending
from_dict

Analisar um ditado com um determinado extrator de chaves devolve um modelo.

Por predefinição, considere extratores chave (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor e last_rest_key_case_insensitive_extractor)

is_xml_model
serialize

Devolver o JSON que seria enviado para o Azure a partir deste modelo.

Este é um alias para as_dict(full_restapi_key_transformer, keep_readonly=Falso).

Se quiser serialização XML, pode transmitir os kwargs is_xml=True.

validate

Valide este modelo de forma recursiva e devolva uma lista de ValidationError.

as_dict

Devolva um ditado que pode ser JSONify com json.dump.

Opcionalmente, a utilização avançada pode utilizar uma chamada de retorno como parâmetro:

A chave é o nome do atributo utilizado no Python. Attr_desc é um ditado dos metadados. Atualmente contém "type" com o tipo msrest e "key" com a chave codificada RestAPI. Valor é o valor atual neste objeto.

A cadeia devolvida será utilizada para serializar a chave. Se o tipo de retorno for uma lista, este é considerado ditado de resultado hierárquico.

Veja os três exemplos neste ficheiro:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Se quiser serialização XML, pode 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 chaves.

keep_readonly
valor predefinido: True

Devoluções

Um objeto compatível com JSON de dict

Tipo de retorno

deserialize

Analise um str com a sintaxe RestAPI e devolva um modelo.

deserialize(data, content_type=None)

Parâmetros

data
str
Necessário

Um str com a estrutura RestAPI. JSON por predefinição.

content_type
str
valor predefinido: None

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

Devoluções

Uma instância deste modelo

Exceções

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

Analisar um ditado com um determinado extrator de chaves devolve um modelo.

Por predefinição, considere extratores 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
Necessário

Um ditado com a estrutura restAPI

content_type
str
valor predefinido: None

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

key_extractors
valor predefinido: None

Devoluções

Uma instância deste modelo

Exceções

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

Devolver o JSON que seria enviado para o Azure a partir deste modelo.

Este é um alias para as_dict(full_restapi_key_transformer, keep_readonly=Falso).

Se quiser serialização XML, pode transmitir os kwargs is_xml=True.

serialize(keep_readonly=False, **kwargs)

Parâmetros

keep_readonly
bool
valor predefinido: False

Se quiser serializar os atributos só de leitura

Devoluções

Um objeto compatível com JSON de ditado

Tipo de retorno

validate

Valide este modelo de forma recursiva e devolva uma lista de ValidationError.

validate()

Devoluções

Uma lista de erros de validação

Tipo de retorno