Skip to main content

Arquitetura recomendada

Por que fila?

  • Limite de 2 jobs simultâneos por projeto
  • Downloads demoram — não bloqueie HTTP do usuário
  • Retry automático em falhas transitórias

Fluxo do worker

1

Receber job da fila

Payload: { "url": "...", "format": "video_best", "userId": "..." }
2

Resolve (se necessário)

POST /media/resolvemedia_id
3

Enfileirar download

POST /media/downloadjob_id
4

Polling

GET /jobs/{id} até completed
5

Persistir

Baixar download_url → upload S3 → salvar URL permanente no DB

Exemplo BullMQ (Node.js)

Concorrência

Configure no máximo 2 workers fazendo download Shappire ao mesmo tempo por projeto — ou use semáforo global.