Disable Unhealthy Flow Schedules
Contexto
Precisamos de um comando que:
- Desative automaticamente flows no Prefect que apresentaram falhas recentes
- Avalie se um flow deve ser desativado com base na última execução da task
run_dbt
- Permita rodar em modo dry-run, logando quais flows seriam desativados sem alterá-los
Objetivos
- Criar um comando Django mínimo (
disable_unhealthy_flow_schedules)
- Implementar classes de domínio (
Task, TaskRun, FlowRun, FlowDisable)
- Implementar serviço (
FlowService) com integração GraphQL
- Permitir execução dry-run
- Garantir parsing correto de datas para comparações precisas
- Organizar código em módulos separados para legibilidade e testabilidade
- Configurar variável de ambiente para autenticação Prefect
- Adicionar dependências necessárias no Poetry
- Criar rotina que rode o comando automaticamente (cron job / schedule)
Tasks
Observações
- Todas as datas são tratadas como datetime naive, no mesmo formato recebido (
%Y-%m-%dT%H:%M:%SZ)
- Dry-run é útil para verificar fluxos sem alterar estado de produção
Disable Unhealthy Flow Schedules
Contexto
Precisamos de um comando que:
run_dbtObjetivos
disable_unhealthy_flow_schedules)Task,TaskRun,FlowRun,FlowDisable)FlowService) com integração GraphQLTasks
_disable_unhealthy_flow_schedulesdentro demanagement/commands/constants.pypara queries GraphQL e nomes de tasks/estadosdatetime_utils.pycom funçõesparse_datetimeeone_week_agomodels.pycomTask,TaskRun,FlowRun,FlowDisableservice.pycomMakeClienteFlowServicedisable_unhealthy_flow_schedules(dry_run=False)disable_unhealthy_flow_schedules.pyObservações
%Y-%m-%dT%H:%M:%SZ)