WhatsApp Disparador & Worker
Motor de mensageria assíncrono para envios em escala. Toda a lógica de filas opera de forma desacoplada do ciclo de vida das rotas HTTP, suportando reinicializações sem perda de tarefas.
Destaques de Engenharia
Fluxo de Arquitetura
[HTTP Requests] ──► [Express Controller] ──► [Insert Job: PENDING]
│
▼
[SQLite Queue Table]
│
▼
[Background Worker Loop]
│
├──► [Random Delay Jitter]
▼
[WPPConnect WhatsApp API]• Backend: Node.js e Express expondo rotas REST
• Banco: SQLite com driver nativo operando em transações atômicas
• Fila: Scheduler baseado em timestamps e estados ('pending', 'processing', 'completed')
Implementação em Código
async function processNextJob() {
const job = db.prepare(`
UPDATE queue
SET status = 'processing', updated_at = ?
WHERE id = (SELECT id FROM queue WHERE status = 'pending' LIMIT 1)
RETURNING *
`).get(Date.now());
if (!job) return;
await dispatchMessage(job);
}Desafios Técnicos Resolvidos
Desafio:
Garantir integridade da fila de envios mesmo se o container cair.
Resolução Implementada:
Toda alteração de estado é persistida atomicamente no SQLite, permitindo retomada imediata pós-crash.
Desafio:
Evitar bloqueios na plataforma de mensageria provocados por envios rítmicos.
Resolução Implementada:
Algoritmo de cálculo de delay não linear e distribuição randômica de intervalos.
Tem interesse em detalhes da arquitetura ou código deste projeto?
Conversar no WhatsApp