golias
10/08/2025, 7:46 PMMarvin
10/08/2025, 7:46 PMMarvin
10/08/2025, 7:46 PMgolias
10/08/2025, 7:46 PMgolias
10/08/2025, 7:46 PMNate
10/08/2025, 7:47 PMgolias
10/08/2025, 7:52 PMMarvin
10/08/2025, 7:52 PMMarvin
10/08/2025, 7:52 PMpydantic 2.10 no Python 3.9/3.10 — PR #19095
- Corrige rollback de transação de tarefa assíncrona quando iniciada a partir de tarefa síncrona — PR #19097
- Documentação:
- Documentados os métodos de instância de serving — PR #19075
Changelog completo (3.4.21 → 3.4.22): ver diffs
Quer que eu resuma também as mudanças das últimas versões anteriores ou algo específico (deploy, workers, armazenamento, Cloud vs. OSS)?
Para atualizar:
pip install -U prefectgolias
10/08/2025, 7:53 PMMarvin
10/08/2025, 7:53 PMMarvin
10/08/2025, 7:53 PMflow.from_source(...).deploy(...))
- Workers e Work Pools
- Schedules e orquestração
- Blocks (credenciais, armazenamento, etc.)
- Integrações (AWS, Docker, Kubernetes)
- Migração do Prefect 2.x para 3.x
Diga o tema e eu preparo um resumo ou passo a passo.golias
10/08/2025, 7:53 PMMarvin
10/08/2025, 7:53 PMgolias
10/08/2025, 7:55 PMMarvin
10/08/2025, 7:55 PMMarvin
10/08/2025, 7:55 PMpydantic 2.10 no Python 3.9/3.10.
- Corrigimos um problema de “rollback” em tarefas assíncronas iniciadas por tarefas síncronas.
- Atualizamos a documentação sobre métodos de “serving”.
Changelog completo: ver mudanças
Se não era isso, me diga qual tema você quer que eu explique (ex.: deploy de flows, workers, schedules, integrações com AWS/Docker/K8s) e eu preparo um passo a passo.golias
10/08/2025, 7:56 PMMarvin
10/08/2025, 7:56 PMNate
10/08/2025, 7:56 PMMarvin
10/08/2025, 7:57 PMstart, stop, database (migrações), e services (serviços de loop do servidor).
- Você pode iniciar o servidor com/sem UI, habilitar/desabilitar scheduler e late-run detector, e ajustar host/port via flags ou variáveis de ambiente.
- Ajuda dos comandos:
prefect server --help
prefect server start --help
prefect server database --help
prefect server services --help
Docs: Server CLI
- Controle dos “loop services”
- Agora é fácil listar e controlar serviços internos como scheduler e detecção de runs atrasados:
prefect server services list
prefect server services start
prefect server services stop
- Gestão de banco de dados integrada
- Migrações, downgrade e reset do schema direto pela CLI:
prefect server database upgrade -y
prefect server database downgrade -y -r <revision>
prefect server database reset -y
- Recomenda-se rodar upgrade ao atualizar o Prefect em ambientes com Server.
- UI integrada e flags de inicialização
- Inicie o Server com UI (por padrão habilitada) e ajuste host/porta:
prefect server start --ui --host 0.0.0.0 --port 4200
- Em ambientes self-hosted, aponte seus clientes/CLI para a API do Server:
prefect config set PREFECT_API_URL="<http://127.0.0.1:4200/api>"
- Configurações podem ser feitas por flags, prefect config ou variáveis de ambiente (ver referência de settings).
Referência de settings: Settings
- Compatibilidade cliente/servidor
- Em geral, clientes antigos funcionam com servidores novos; já clientes novos podem não funcionar com servidores antigos se houver campos novos na API (nesses casos, o servidor pode responder 422).
- Recomenda-se manter versões alinhadas entre o Server e os clientes/flows.
Conceitos do Server: Prefect Server (conceitos)
Correções recentes relevantes (3.4.22)
- Correção de erros de inicialização ao usar pydantic 2.10 no Python 3.9/3.10 — PR #19095
- Outras correções e docs menores; changelog completo 3.4.21 → 3.4.22:
ver diffs
Como atualizar com segurança
1) Atualize o pacote:
pip install -U prefect
2) Aplique migrações do banco do Server:
prefect server database upgrade -y
3) Reinicie o Server e aponte seus clientes para a nova API (se necessário):
prefect server start --ui
prefect config set PREFECT_API_URL="http://<host>:<port>/api"
Quer que eu detalhe algo específico do Server (UI, banco, serviços, deploy em Docker/K8s, etc.)?Marvin
10/08/2025, 8:01 PMprefect server start --host 0.0.0.0 --port 4200 --ui --log-level INFO --scheduler --late-runs
Mais opções no help: CLI do server
2) Banco de dados (trocar SQLite por Postgres)
- Em produção, prefira Postgres para durabilidade e concorrência.
- Configure a string de conexão via variáveis de ambiente (veja a referência de settings) e faça tuning do pool de conexões no Postgres conforme carga.
- Faça backups regulares (pg_dump/pg_basebackup) e monitore espaço/health do Postgres.
- Migrações:
prefect server database upgrade
- Referência de settings: Referência de settings
3) Confiabilidade dos serviços internos
- Garanta que os services do server (scheduler, late runs) estejam ligados:
prefect server services list
prefect server services start
- Rode o Server e o DB como serviços gerenciados (systemd, Docker/Compose, Kubernetes) com restart policies e healthchecks.
4) Escala e controle de capacidade
- Use Work Pools + Workers para escalar execução dos flows. Inicie mais workers conforme a demanda:
prefect worker start -p "meu-pool"
- Limite concorrência no nível do Work Pool:
prefect work-pool set-concurrency-limit "meu-pool" 10
- Considere limites globais de concorrência por recurso (ex.: “só 2 cargas de dados no DW por vez”):
- Guia: Limites de concorrência globais
5) Observabilidade (logs, alertas e automações)
- Centralize logs (stdout → Loki/ELK/CloudWatch) e ajuste o nível de log no Server/Workers.
- Crie automations para alertar falhas, atrasos ou estados específicos (via Slack/Webhook/Email):
prefect automation ls
prefect automation enable <id>
prefect automation pause <id>
- Padronize tags/nomes nas runs para facilitar filtros e dashboards.
6) Operação e manutenção
- Backups: se usar Docker, persista volumes do Postgres; se usar VMs, snapshots + backups lógicos.
- Atualizações: planeje janelas para atualizar o Server e rodar database upgrade.
- Telemetria/analytics: se preferir desativar, use o flag apropriado ao iniciar o server:
prefect server start --analytics-off
- Configure limites/retries/timeouts nos flows e tarefas para resiliência.
7) Rede e performance
- Ative compressão no proxy (gzip/br), keep-alive e caching adequado para a UI.
- Use variáveis/flags do Server para ajustar host/port/timeout de keep-alive conforme sua infra:
prefect server start --host 0.0.0.0 --port 4200 --keep-alive-timeout 60
Se quiser, posso:
- Revisar seu docker-compose/Nginx atual
- Sugerir variáveis de ambiente corretas para Postgres e logging no seu ambiente
- Configurar automations de alerta para Slack
Você está rodando o Prefect Server via Docker/Compose, Kubernetes ou instalação direta? E já usa Postgres ou ainda está com SQLite? Assim eu personalizo os passos e exemplos.golias
10/10/2025, 1:16 PMMarvin
10/10/2025, 1:16 PMMarvin
10/10/2025, 1:18 PMimport ssl
from prefect.client.orchestration import PrefectClient
ctx = ssl.create_default_context(cafile="/path/to/ca.pem")
client = PrefectClient(
api="<http://127.0.0.1:4200/api>",
httpx_settings={"verify": ctx},
)
- A new CLI entry for direct API access: prefect api. PR #19131
- Note: when I checked, prefect api did not appear in prefect --help in my environment yet. If you don’t see it, please confirm your version with prefect version and upgrade to the latest release. It may require the newest patch.
Bug fixes
- Cron schedules now support the day_or parameter (e.g., matching day-of-month OR day-of-week). PR #19121
from prefect.schedules import Cron
# day_or=True means cron fires if EITHER day-of-month or day-of-week matches
schedule = Cron("0 8 * * MON-FRI", day_or=True)
- More reliable async cancellation handling with timeout_async. PR #19101
- Fix for recursive local module discovery in bundle serialization. PR #19124
Docs
- Integrations release notes links added. PR #19108
- ATProto social analytics dashboard example using Prefect Assets. PR #18984
- Prefect MCP server docs. PR #19115
Full changelog: 3.4.22 → 3.4.23
Would you like details or examples for any specific change (e.g., the new SSL contexts, cron scheduling behavior, or the prefect api CLI)? Also, what Prefect version are you currently on (prefect version)?