Compartilhar via


StartTask Classe

Uma Tarefa que é executada quando um nó ingressa em um pool no serviço Lote do Azure ou quando o Nó de Computação é reinicializado ou recriado.

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. Em alguns casos, o StartTask pode ser executado novamente, mesmo que o Nó de Computação não tenha sido reinicializado. Deve-se tomar cuidado especial para evitar StartTasks que criam processos de separação ou serviços de instalação/inicialização do diretório de trabalho StartTask, pois isso impedirá que o Lote seja capaz de executar novamente o StartTask.

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

Herança
StartTask

Construtor

StartTask(*, command_line: str, container_settings=None, resource_files=None, environment_settings=None, user_identity=None, max_task_retry_count: int = None, wait_for_success: bool = None, **kwargs)

Parâmetros

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 expansão de 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 o StartTask é executado. 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 task são mapeadas para o contêiner e a linha de comando Task é executada no contêiner. Os arquivos produzidos no contêiner fora do AZ_BATCH_NODE_ROOT_DIR podem não ser refletidos no disco 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.

environment_settings
list[EnvironmentSetting]
Obrigatório
user_identity
UserIdentity
Obrigatório

A identidade do usuário na qual o StartTask é executado. Se omitido, a Tarefa será executada como um usuário não administrativo exclusivo da Tarefa.

max_task_retry_count
int
Obrigatório

O número máximo de vezes que a Tarefa pode ser repetida. O serviço do Lote tentará novamente uma Tarefa se seu código de saída for diferente de zero. Observe que esse valor controla especificamente o número de tentativas. O serviço lote tentará a Tarefa uma vez e poderá tentar novamente até esse limite. Por exemplo, se a contagem máxima de repetições for 3, o Lote tentará a Tarefa até 4 vezes (uma tentativa inicial e três novas tentativas). Se a contagem máxima de repetições for 0, o serviço do Lote não repetirá a Tarefa. Se a contagem máxima de repetições for -1, o serviço do Lote tentará novamente a Tarefa sem limite, no entanto, isso não é recomendado para uma tarefa inicial ou qualquer tarefa. O valor padrão é 0 (sem novas tentativas).

wait_for_success
bool
Obrigatório

Se o serviço do Lote deve aguardar a conclusão bem-sucedida do StartTask (ou seja, sair com o código de saída 0) antes de agendar qualquer Tarefa no Nó de Computação. Se true e StartTask falharem em um nó, o serviço do Lote tentará novamente o StartTask até sua contagem máxima de repetição (maxTaskRetryCount). Se a Tarefa ainda não tiver sido concluída com êxito após todas as tentativas, o serviço do Lote marcará o Nó inutilizável e não agendará Tarefas para ele. Essa condição pode ser detectada por meio do estado do Nó de Computação e dos detalhes das informações de falha. Se for false, o serviço do Lote não aguardará a conclusão do StartTask. Nesse caso, outras Tarefas podem começar a ser executadas no Nó de Computação enquanto o StartTask ainda está em execução; e mesmo que o StartTask falhe, novas Tarefas continuarão a ser agendadas no Nó de Computação. O padrão é true.

Métodos

as_dict

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

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

Key é o nome do atributo usado no Python. Attr_desc é um dict 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.

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

Key é o nome do atributo usado no Python. Attr_desc é um dict 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 dict

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