Acompanhe resultados e trate falhas
Consulte o estado da tarefa e tente novamente em caso de erro.
Acompanhe resultados e trate falhas é uma aula grátis de Flask Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Flask Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flask Academy inclui 4 aulas no total.
O identificador AsyncResult
Quando você coloca uma tarefa na fila, recebe um AsyncResult. Salve seu identificador para poder verificar o trabalho em qualquer solicitação posterior.
job = add.delay(2, 3)
ticket = job.idVerifique o estado
Cada tarefa tem um estado, como PENDING, STARTED, SUCCESS ou FAILURE. Leia-o para saber se o trabalho foi concluído.
res = add.AsyncResult(ticket)
print(res.state)Ler o resultado
Quando uma tarefa é concluída com sucesso, seu valor de retorno é armazenado na infraestrutura de armazenamento. Acesse-o por meio de result em AsyncResult.
if res.ready():
print(res.result)Sondar, não bloquear
Em uma visualização web, nunca chame get() e fique aguardando. Em vez disso, retorne o identificador da tarefa e deixe o client sondar um endpoint de estado.
Um endpoint de estado
Disponibilize uma rota que receba o identificador de uma tarefa e retorne seu estado e resultado. A interface frontend a consulta a cada poucos segundos até a conclusão.
@app.get("/status/<tid>")
def status(tid):
r = add.AsyncResult(tid)
return {"state": r.state}Falhas acontecem
Chamadas externas atingem o tempo limite e o código gera erros. Quando uma tarefa lança uma exceção, o Celery a marca como FAILURE e registra a exceção.
Novas tentativas automáticas
Faça uma tarefa tentar novamente em caso de erros temporários. Defina max_retries e um atraso para que chamadas instáveis tenham mais algumas chances.
@celery.task(bind=True, max_retries=3)
def fetch(self):
...Aumentar o intervalo entre tentativas
Tentar novamente imediatamente pode sobrecarregar um serviço com problemas. Use um atraso crescente, chamado backoff, para que cada nova tentativa aguarde mais tempo.
Acionar uma nova tentativa
Dentro da tarefa, capture o erro e chame self.retry. O Celery coloca a tarefa novamente na fila e contabiliza essa tentativa em max_retries.
try:
do_work()
except Exception as e:
self.retry(exc=e, countdown=5)Definir limites de tempo
Uma tarefa travada não deve ser executada indefinidamente. Um limite de tempo encerra tarefas que ultrapassam o prazo e libera o trabalhador para outras tarefas.
Expiração do resultado
Resultados armazenados ocupam espaço. O Celery expira resultados antigos depois de algum tempo; por isso, projete os clientes para buscá-los rapidamente. ⏱️
Verificação rápida
Sua tarefa chama uma API externa instável.
Recapitulação
Acompanhe as tarefas pelo identificador, consulte um endpoint de estado para obter o estado e o resultado, e trate falhas com novas tentativas, backoff e limites de tempo. ✅
Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Acompanhe resultados e trate falhas” é grátis?
Sim — o texto completo de “Acompanhe resultados e trate falhas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Flask Academy, atualize para CoddyKit PRO. O curso de Flask Academy inclui 4 aulas no total.
O que vou aprender em “Acompanhe resultados e trate falhas”?
Consulte o estado da tarefa e tente novamente em caso de erro. Você pratica Flask Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Flask Academy?
Nenhuma experiência prévia é necessária. Flask Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Acompanhe resultados e trate falhas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Flask Academy?
Sim. Cada aula de Flask Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Por que tirar o trabalho da solicitação
- Integre Celery à fábrica do aplicativo
- Defina e chame uma tarefa
- Acompanhe resultados e trate falhas