Processadores de jobs: o papel do Sidekiq
O curso compara o Sidekiq com o Solid Queue, o backend de jobs que este app Rails usa. Mostra como uma classe Sidekiq::Job difere das classes ActiveJob do app e onde cada sistema guarda o trabalho enfileirado: no Redis ou no PostgreSQL. Explica o que as configurações de persistência do Redis significam para a durabilidade. Também compara as novas tentativas automáticas do Sidekiq com o retry_on opcional, e threads num processo com pools de dispatcher e workers. A Web UI do Sidekiq aparece diante de um app sem painel de jobs. A última aula confronta o raciocínio do Rails com os benchmarks do Sidekiq.
O que você vai aprender
- ✓Como a API nativa do Sidekiq (perform_async, perform_in, perform_at) difere do perform_later do ActiveJob
- ✓Por que o Sidekiq precisa de um serviço Redis separado e como RDB e AOF afetam a durabilidade
- ✓Como as 25 novas tentativas padrão do Sidekiq se comparam ao retry_on opcional e às falhas registradas no Solid Queue
- ✓Como threads e filas com peso do Sidekiq se comparam aos dispatchers e pools de workers do Solid Queue
- ✓O que a Web UI do Sidekiq mostra e como os planos gratuito e pagos se diferenciam
- ✓Como pesar o raciocínio publicado pelo Rails e os benchmarks do Sidekiq na escolha de um processador de jobs
Duas filosofias, um job: Redis ou o banco de dados
Um job em segundo plano é uma promessa de fazer algo depois: mandar um email, buscar uma imagem, recalcular uma estatística. Entre o "faça isso depois" do seu código e a hora em que um worker roda o job, essa promessa precisa ficar guardada. O lugar tem de ser durável o bastante para sobreviver a…
Ler a aula completa grátis →Currículo
7 aulasDuas filosofias, um job: Redis ou o banco de dados
Apresenta o Sidekiq e o Solid Queue como dois jeitos de guardar jobs pendentes: no Redis ou no banco relacional.
Escrevendo o job: Sidekiq::Job vs o ApplicationJob deste app
Compara o perform_async nativo do Sidekiq com os jobs ActiveJob deste app e o que exigiria uma troca de adapter.
Onde a fila mora: Redis vs uma tabela do PostgreSQL
Explica a dependência do Redis no Sidekiq, a persistência RDB e AOF e as linhas do Solid Queue no PostgreSQL.
Novas tentativas: o backoff automático do Sidekiq vs o retry_on opcional
Compara as 25 novas tentativas padrão do Sidekiq com o retry_on opcional do ActiveJob e o destino dos jobs esgotados.
Executando o trabalho: threads vs processos de dispatcher/worker
Contrasta as threads num único processo do Sidekiq com o dispatcher e os três pools de workers deste app.
Acompanhando: a Web UI do Sidekiq vs nenhum painel aqui
Mostra a Web UI do Sidekiq montada nas rotas, a falta de painel neste app e os planos pagos.
Juntando tudo: escolhendo um processador de jobs pelas evidências
Confronta o argumento do Rails pelo Solid Queue com os benchmarks do Sidekiq e os fatos deste app.