Conclua tarefas em segundo plano após a falha de um worker Projeto

Recupere tarefas reais do RabbitMQ após interrupções e torne repetições seguras com transações SQLite.

DevOpsPython

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Introdução

Conclua tarefas em segundo plano após a falha de um worker é um projeto prático de DevOps para quem consegue ler uma pequena função Python. Ajude o Nightjar Print Studio a transformar inscrições reais em ingressos utilizáveis e disponíveis para download, mesmo quando o worker para entre receber uma mensagem, confirmar o trabalho e reconhecer a entrega.

Um laboratório guiado ensina o percurso normal do cliente, o momento do reconhecimento e a idempotência transacional. Um desafio independente reúne inscrições pendentes, entregas repetidas, nomes iguais e um ingresso existente a preservar. Cada unidade começa no seu próprio ambiente preparado.

O que você aprenderá

  • Acompanhar uma inscrição real pelo RabbitMQ até a página e o download do ingresso.
  • Reconhecer após o commit do banco para permitir a reentrega do trabalho interrompido.
  • Gravar a chave de conclusão por ID e o ingresso na mesma transação SQLite.
  • Distinguir entregas duplicadas de inscrições diferentes com o mesmo nome.
  • Reproduzir janelas de interrupção e corrigir explicitamente ingressos duplicados sem reiniciar outros convidados.

Para quem é este curso

Este projeto intermediário atende estudantes de DevOps e desenvolvedores interessados na confiabilidade de tarefas em segundo plano. Você precisa de uso básico do terminal e saber ler funções Python, indentação e consultas a dicionários. Uma breve ponte revisa esses elementos e apresenta o SQL e as transações usados aqui.

RabbitMQ, Python, SQLite e o site completo do Nightjar estão prontos no navegador. Você modifica apenas um pequeno manipulador, sem criar o site nem instalar serviços. Os documentos estão em nove idiomas; o site, os rótulos e as saídas continuam em inglês.

Perguntas frequentes

Preciso de uma conta externa ou instalação local?

Não. Tudo usa serviços de treinamento preparados e convidados fictícios. Não há pagamento, e-mail nem entrega externa.

Isso garante processamento exatamente uma vez?

Não. O RabbitMQ pode entregar novamente. A transação torna a repetição de um ID segura para o resultado do ingresso neste banco SQLite. E-mail, pagamentos, falhas do broker e alta disponibilidade de produção exigem outro projeto.

E se eu criar ingressos duplicados durante o aprendizado?

O laboratório ensina uma prévia e um reparo explícitos por ID, preservando o ingresso original mais antigo e os outros convidados. A avaliação nunca corrige nem consome o trabalho real: lê resultados e testa o manipulador em alvos descartáveis isolados.

Professor

labby
Labby
Labby is the LabEx teacher.