StartTask interface
O Lote tentará novamente 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 de host. As novas tentativas devido às operações de recuperação são independentes e não são contadas em relação ao maxTaskRetryCount. Mesmo que o maxTaskRetryCount seja 0, uma repetição interna devido a uma operação de recuperação poderá ocorrer. Por isso, todas as tarefas devem ser idempotentes. Isso significa que as tarefas precisam tolerar ser interrompidas e reiniciadas sem causar dados corrompidos ou duplicados. A melhor prática para tarefas de execução longa é 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 o processo de separação ou instalam/iniciam serviços do diretório de trabalho StartTask, pois isso impedirá que o Lote seja capaz de executar novamente o StartTask.
Propriedades
| command |
A linha de comando do StartTask. 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 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 (relativo ao diretório de trabalho da 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 |
As configurações do contêiner no qual o StartTask é executado. Quando isso é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz dos diretórios do Lote do Azure 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 de 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. |
| environment |
Uma lista de configurações de variável de ambiente para o StartTask. |
| max |
O número máximo de vezes que a Tarefa pode ser repetida. O serviço do Lote tentará novamente uma Tarefa se o código de saída não for zero. Observe que esse valor controla especificamente o número de repetições. 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ção for 3, o Lote tentará a Tarefa até 4 vezes (uma tentativa inicial e três tentativas). Se a contagem máxima de repetição for 0, o serviço do Lote não tentará novamente a Tarefa. Se a contagem máxima de repetição for -1, o serviço do Lote repetirá a Tarefa sem limite. |
| resource |
Uma lista de arquivos que o serviço do Lote baixará no Nó de Computação antes de executar a linha de comando. 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 feito usando arquivos .zip, pacotes de aplicativos ou contêineres do Docker. Os arquivos listados sob esse elemento estão localizados no diretório de trabalho da Tarefa. |
| user |
A identidade do usuário na qual o StartTask é executado. Se omitido, a Tarefa será executada como um usuário não administrativo exclusivo para a Tarefa. |
| wait |
Se o serviço do Lote deve aguardar a conclusão do StartTask com êxito (ou seja, sair com o código de saída 0) antes de agendar tarefas no Nó de Computação. Se true e o 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 novas tentativas, o serviço do Lote marcará o nó inutilizável e não agendará Tarefas para ela. 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 falso, 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 estiver em execução; e mesmo que o StartTask falhe, novas tarefas continuarão a ser agendadas no Nó de Computação. O padrão é verdadeiro. |
Detalhes da propriedade
commandLine
A linha de comando do StartTask. 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 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 (relativo ao diretório de trabalho da Tarefa) ou usar a variável de ambiente fornecida pelo Lote (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Valor da propriedade
string
containerSettings
As configurações do contêiner no qual o StartTask é executado. Quando isso é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz dos diretórios do Lote do Azure 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 de 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.
containerSettings?: TaskContainerSettings
Valor da propriedade
environmentSettings
Uma lista de configurações de variável de ambiente para o StartTask.
environmentSettings?: EnvironmentSetting[]
Valor da propriedade
maxTaskRetryCount
O número máximo de vezes que a Tarefa pode ser repetida. O serviço do Lote tentará novamente uma Tarefa se o código de saída não for zero. Observe que esse valor controla especificamente o número de repetições. 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ção for 3, o Lote tentará a Tarefa até 4 vezes (uma tentativa inicial e três tentativas). Se a contagem máxima de repetição for 0, o serviço do Lote não tentará novamente a Tarefa. Se a contagem máxima de repetição for -1, o serviço do Lote repetirá a Tarefa sem limite.
maxTaskRetryCount?: number
Valor da propriedade
number
resourceFiles
Uma lista de arquivos que o serviço do Lote baixará no Nó de Computação antes de executar a linha de comando. 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 feito usando arquivos .zip, pacotes de aplicativos ou contêineres do Docker. Os arquivos listados sob esse elemento estão localizados no diretório de trabalho da Tarefa.
resourceFiles?: ResourceFile[]
Valor da propriedade
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 para a Tarefa.
userIdentity?: UserIdentity
Valor da propriedade
waitForSuccess
Se o serviço do Lote deve aguardar a conclusão do StartTask com êxito (ou seja, sair com o código de saída 0) antes de agendar tarefas no Nó de Computação. Se true e o 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 novas tentativas, o serviço do Lote marcará o nó inutilizável e não agendará Tarefas para ela. 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 falso, 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 estiver em execução; e mesmo que o StartTask falhe, novas tarefas continuarão a ser agendadas no Nó de Computação. O padrão é verdadeiro.
waitForSuccess?: boolean
Valor da propriedade
boolean