Executar trabalhos continuamente

Use o modo contínuo para agendar cargas de trabalho para execução contínua. O Databricks recomenda usar o modo contínuo para cargas de trabalho de streaming sempre ativas.

O modo contínuo substitui as recomendações anteriores para cargas de trabalho do Structured Streaming, configurando os trabalhos com uma política de repetição ilimitada e no máximo uma execução simultânea.

Observação

Trabalhos com agendamentos contínuos na computação sem servidor funcionam com gatilhos do Streaming Estruturado limitados, como Trigger.AvailableNow. O agendador de trabalho reinicia a tarefa quando ela é concluída e o ponto de verificação de streaming garante que nenhum dado seja reprocessado.

Gatilhos baseados em tempo, como Trigger.ProcessingTime e Trigger.Continuous, não são suportados na computação sem servidor. Confira Limitações de computação sem servidor.

Para o streaming contínuo com requisitos de baixa latência na computação sem servidor, use o modo de pipeline desencadeado versus contínuo no modo contínuo.

Configurar o trabalho para execução no modo contínuo

Para configurar um trabalho para execução no modo contínuo, faça o seguinte:

  1. Na barra lateral do Azure Databricks workspace, clique em Jobs & Pipelines.

  2. Opcionalmente, selecione os filtros Trabalhos e Propriedade minha .

  3. Clique no link Nome do seu trabalho.

  4. Clique em Adicionar gatilho no painel Detalhes do trabalho , selecione Contínuo no tipo gatilho

  5. Opcionalmente, selecione um modo de repetição de tarefa. Você pode optar por tentar novamente Em caso de falha para as tarefas com falha em um trabalho, ou selecionar Nunca para tentar novamente somente no nível do trabalho. O modo de repetição de tarefa usa Em caso de falha como padrão para o modo contínuo.

    Observação

    Para um trabalho já existente, talvez seja necessário primeiro clicar em Configurar o modo de repetição e, em seguida, selecionar um modo de repetição de tarefa.

  6. Clique em Salvar.

Para interromper um trabalho contínuo, clique no botão Pausar. Clique em Retomar para reiniciar o trabalho no modo contínuo.

Observação

  • Pode haver apenas uma instância em execução de um trabalho contínuo.
  • Há um atraso entre a conclusão de uma execução e o início de uma nova execução. Esse atraso deve ser inferior a 60 segundos.
  • Você não pode usar dependências de tarefa com um trabalho contínuo.
  • Não é possível usar políticas de repetição em um trabalho contínuo. Em vez disso, os trabalhos contínuos repetem automaticamente todo o trabalho em caso de falha usando um algoritmo de retirada exponencial .
  • Além disso, você pode configurar novas tentativas no nível da tarefa definindo o modo de repetição de Tarefa como Falha.
  • Selecione Executar agora para acionar uma nova execução de trabalho em um trabalho que esteja em pausa.
  • Para que seu trabalho contínuo detecte uma nova configuração, clique em Reiniciar execução para reiniciar a execução com a configuração atualizada. Você também pode fazer isso programaticamente passando o ID do trabalho para a requisição run-now na API de Jobs.

Tratamento de falhas para trabalhos contínuos

As falhas são gerenciadas usando um algoritmo de retirada exponencial .

Quando o modo de repetição de tarefa é definido como Falha, as tarefas com falha são repetidas com um atraso exponencialmente crescente até que o número máximo de tentativas permitidas seja atingido (três para um único trabalho de tarefa). Depois que o máximo de tentativas for atingido, a execução será cancelada e uma nova execução será desencadeada. Para trabalhos com várias tarefas, uma tarefa com falha aciona uma nova execução se não houver outras tarefas em execução ou se todas as outras tarefas não concluídas também estiverem em um estado de falha ou de reexecução.

Falhas consecutivas em um nível de tarefa também são gerenciadas usando o recuo exponencial, o que permite que tarefas contínuas sejam executadas sem interrupções e retornem a um estado saudável quando ocorrerem falhas recuperáveis.

Quando um trabalho contínuo excede o limite permitido para falhas consecutivas, o seguinte descreve como as execuções de trabalho subsequentes são gerenciadas:

  1. O trabalho é reiniciado após um período de tentativa definido pelo sistema.
  2. Se a próxima execução de tarefa falhar, o intervalo de nova tentativa será aumentado, e a tarefa será reiniciada após este novo intervalo.
    1. Para cada falha subsequente na execução do trabalho, o período de nova tentativa é aumentado até um máximo definido pelo sistema. Depois de atingir o período máximo de repetição, o trabalho continua a ser repetido usando esse mesmo período máximo. Não há limitações para o número de repetições para um trabalho contínuo.
    2. Se a execução do trabalho for concluída com êxito e iniciar uma nova execução ou se a execução exceder um limite sem falha, o trabalho será considerado íntegro e a sequência de retirada será redefinida.

Você pode reiniciar um trabalho contínuo no estado de retirada exponencial na Interface do Usuário de Trabalhos ou passando a ID do trabalho para a solicitação run-now na API de Trabalhos.