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ó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
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]
Os arquivos listados sob esse elemento estão localizados no diretório de trabalho da Tarefa.
- environment_settings
- list[EnvironmentSetting]
- user_identity
- UserIdentity
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
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
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:
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
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
Retornos
Uma instância desse modelo
Exceções
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
- key_extractors
Retornos
Uma instância desse modelo
Exceções
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
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
Azure SDK for Python