Posts em rápida sucessão não enviam todos os e-mails

Este fórum precisa aprovar todas as publicações. Como resultado, algumas postagens são publicadas em rápida sucessão: quando um moderador faz login, ele aprova as postagens rapidamente, uma após a outra.

A maioria das categorias está configurada como “observando” para todos os usuários e quase nenhum usuário faz login; o fórum depende fortemente de notificações por e-mail.

O problema é que, sempre que as postagens são publicadas em rápida sucessão (com menos de 1,5 minuto de intervalo), nem todos os e-mails são enviados. Esta consulta mostra a contagem de todos os e-mails enviados (entradas em email_logs por tópico). O número de usuários que deveriam receber um e-mail é de aproximadamente 2250. Quando algumas pessoas fizeram login recentemente (cerca de 1%), elas não recebem e-mail, então o número varia um pouco, mas deve ficar entre 2200 e 2250.

Como você pode ver nas três primeiras linhas, postagens publicadas rapidamente uma após a outra não têm a quantidade total de e-mails.

O que pode estar acontecendo aqui?

Ah, max_emails_per_day_per_user está definido para um valor realmente alto.


colunas: tópico, data/hora, categoria, # e-mails enviados

Nos últimos meses tivemos alguns novos insights:

  • o problema não estava nos e-mails em si, mas na geração das notificações subjacentes
  • gerar muitas notificações em rápida sucessão leva o Sidekiq a reiniciar com Sidekiq está consumindo muita memória
  • o reinício do Sidekiq leva ao lote atual de notificações que está sendo gerado para uma postagem ser abortado, resultando em um conjunto incompleto de notificações.

EDIT aumentar UNICORN_SIDEKIQ_MAX_RSS impediu que esse problema ocorresse novamente nos últimos 9 dias.