StartTask Classe
Uma Tarefa que é executada quando um Nó associa um Conjunto no serviço Azure Batch ou quando o Nó de Computação é reiniciado ou recriado.
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. Em alguns casos, o StartTask pode ser novamente executado, mesmo que o Nó de Computação não tenha sido reiniciado. Deve ter especial cuidado para evitar StartTasks que criam processos de separação ou instalam/iniciam serviços a partir do diretório de trabalho do StartTask, uma vez que isto impedirá o Batch de voltar a executar o StartTask.
Todos os parâmetros necessários têm de ser preenchidos para enviar para o 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. A linha de comandos não é executada numa 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 (relativo ao diretório de trabalho de tarefas) 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
As definições do contentor no qual o StartTask é executado. Quando isto é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz de Azure Batch diretórios 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 ficheiros do Batch não conseguirão aceder a esses ficheiros.
- resource_files
- list[ResourceFile]
Os ficheiros listados neste elemento estão localizados no diretório de trabalho da Tarefa.
- environment_settings
- list[EnvironmentSetting]
- user_identity
- UserIdentity
A identidade de utilizador na qual o StartTask é executado. Se for omitida, a Tarefa é executada como um utilizador 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 Batch repetirá uma Tarefa se o código de saída não for zero. Tenha em atenção que este valor controla especificamente o número de repetições. O serviço Batch tentará a Tarefa uma vez e, em seguida, poderá repetir até este limite. Por exemplo, se a contagem máxima de repetições for 3, o Batch tenta a Tarefa até 4 vezes (uma tentativa inicial e três repetições). Se a contagem máxima de repetições for 0, o serviço Batch não repetirá a Tarefa. Se a contagem máxima de repetições for -1, o serviço Batch repetirá a Tarefa sem limite. No entanto, isto não é recomendado para uma tarefa de início ou qualquer tarefa. O valor predefinido é 0 (sem repetições).
- wait_for_success
- bool
Se o serviço Batch deve aguardar que o StartTask seja concluído com êxito (ou seja, sair com o código de saída 0) antes de agendar quaisquer Tarefas no Nó de Computação. Se for verdadeiro e o StartTask falhar num Nó, o serviço Batch repete o StartTask até à contagem máxima de repetições (maxTaskRetryCount). Se a Tarefa ainda não tiver sido concluída com êxito após todas as repetições, o serviço Batch marca o Nó inutilizável e não agendará Tarefas para o mesmo. Esta condição pode ser detetada através do estado do Nó de Computação e dos detalhes das informações de falha. Se for falso, o serviço Batch não aguardará pela conclusão do StartTask. Neste 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, as novas Tarefas continuarão a ser agendadas no Nó de Computação. A predefinição é verdadeira.
Métodos
as_dict |
Devolver 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. O valor é o valor atual neste objeto. A cadeia devolvida será utilizada para serializar a chave. Se o tipo de retorno for uma lista, isto é considerado dict de resultado hierárquico. Veja os três exemplos neste ficheiro:
Se quiser serialização XML, pode transmitir 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
Devolver 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. O valor é o valor atual neste objeto.
A cadeia devolvida será utilizada para serializar a chave. Se o tipo de retorno for uma lista, isto é considerado dict 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 transmitir 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
Devoluções
Um objeto compatível com JSON de ditado
Tipo de retorno
deserialize
Analise um str com a sintaxe RestAPI e devolva um modelo.
deserialize(data, content_type=None)
Parâmetros
Devoluções
Uma instância deste modelo
Exceções
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
- key_extractors
Devoluções
Uma instância deste modelo
Exceções
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
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
Azure SDK for Python