- Recomenda usar o mesmo banco de dados (Postgres) para os dados da aplicação e para a fila de jobs. Dependências mínimas
- É possível evitar toda uma classe de problemas em sistemas distribuídos ao colocar jobs na fila de forma transacional junto com outras alterações no banco de dados
- Enfileiramento transacional: os jobs entram na fila quando a transação é confirmada, são removidos quando a transação sofre rollback e é garantido que não fiquem visíveis até o commit
- Aproveitando o recurso
NOTIFY do Postgres, a fila pode acordar os workers assim que um job estiver pronto para começar, reduzindo a latência média antes do início do processamento para a casa dos milissegundos
- Usa o protocolo binário do Postgres e minimiza os round trips com o banco de dados para aumentar a eficiência
- A inserção em massa de jobs é feita de forma eficiente com
COPY FROM
Ainda não há comentários.