Minion
Tipo: Documentação Oficial
Autor(es): Sebastian Riedel e colaboradores
Publicado: 2014 (atualizado continuamente)
Acessado: 2026-06-27
Relevância
Minion é o sistema de filas de jobs nativo do ecossistema Mojolicious. Oferece
jobs persistentes com retry automático, prioridades, agendamento, concorrência
configurável e uma interface web de administração. Suporta múltiplos backends;
no stack Crystallized Perl, usa Minion::Backend::Pg — o mesmo PostgreSQL
da aplicação, sem serviço adicional.
A distinção central entre Minion e PgQue (ADR-022) é o escopo — ambos hoje em
PostgreSQL, mas em instâncias dedicadas distintas (db-jobs/db-events, ADR-023):
| Característica | Minion | PgQue |
|---|---|---|
| Processo | Mesmo ecossistema (worker Perl) | Consumidores nomeados, fan-out real |
| Roteamento | Por tipo de task | Por tipo de evento (type), cursor por consumidor |
| Backend | PostgreSQL, instância db-jobs | PostgreSQL, instância db-events |
| Caso de uso | Jobs internos persistentes | Notificação de múltiplos consumidores desacoplados |
Na aplicação Stega (ADR-018), o Minion processa jobs que pertencem ao domínio
da aplicação (verificação de SLA, processamento de webhooks recebidos, relatórios),
enquanto o PgQue conecta a Stega com serviços externos de notifica ção
(NotificationWorker).
Referenciada em
- ADR-008 — Minion citado como alternativa complementar ao RabbitMQ para jobs internos (histórico)
- ADR-018 — Stega usa Minion com
Minion::Backend::Pgpara jobs assíncronos internos - ADR-022 — cita
Minion::Backend::Pgcomo prova de conceito já em produção do padrãoSKIP LOCKED/LISTEN/NOTIFYque fundamenta a adoção do PgQue no lugar do RabbitMQ (aceita em 2026-07-07) - ADR-023 — Minion passa
a usar uma instância PostgreSQL própria (
db-jobs), nunca a mesma dedb-app - ADR-024 —
Minion.pmnão roda nativamente no Windows (fork()emulado via ithreads); ADRProposta, pendência de pesquisa sobre se o PgQue pode cobrir os cenários de job atuais - ADR-025 — Minion
não tem agendador recorrente embutido (só
delay, para uma execução única); motiva o processo dedicado (script/report_scheduler) que enfileira jobs periodicamente