Ho un forum su Discourse, ma con un limite di velocità di invio lento (20/secondo).
Posso impostare il limite di velocità di invio su Discourse?
Lo chiedo perché ho notato di avere quasi 500.000 record ogni giorno nella tabella unsubscribe_keys, ma solo 9.000 in mail_log e 1.000 in skipped_mail_log. Il nostro forum ha quasi 500.000 membri.
Non sono sicuro che sia causato dall’invio di email troppo veloce, che abbia provocato qualche problema strano, quindi sto cercando di limitare la velocità di invio, ma senza successo.
Non sono sicuro che sia necessario impostare la frequenza di invio… perché anche se potessimo aumentarla a circa 60 al secondo, è sempre possibile che il server invii troppo velocemente e venga bloccato.
Perché così tanti membri di Discourse stanno ricevendo email? Per quale motivo esattamente? Questa è la domanda più rilevante.
In un’installazione tipica di Discourse, l’unica email “a tutti gli utenti” è il riassunto, e anche questa è destinata solo agli utenti che non hanno visitato il sito da una settimana o più, ma non da più di un anno.
In generale, ricevi email solo quando qualcuno si rivolge direttamente a te, e anche in quel caso solo se non hai interagito con il sito tramite un browser web negli ultimi 10 minuti.
In passato abbiamo organizzato un’attività (circa alcuni mesi fa) che ha attratto circa 90.000 iscritti. Ora potrebbero essere assenti per alcune settimane, quindi il sistema ha inviato loro le e-mail di riepilogo.
Hai mai trovato una soluzione? Sto per passare ad Amazon SES e ho appena scoperto che il nostro limite iniziale è di 14 email al secondo. Non sono sicuro di quanto velocemente Discourse invierà le email a SES. Il sito invia molte email.
Qualcuno sa qual è il tasso massimo con cui Discourse invia le email? Proverà a inviarne più di 14 al secondo?
Se le inviasse troppo velocemente, mi chiedo se potrebbe essere una buona idea scrivere uno script che distribuisca uniformemente l’invio delle email di riepilogo per tutti gli utenti durante la settimana, invece di inviarne la maggior parte in un solo giorno (il nostro anniversario di importazione).
Modifica: Ho capito che potrei capire se questo è un problema controllando i log di Mandrill. A meno che non ci sia un’ulteriore limitazione da parte di Mandrill, penso che abbiamo un massimo di circa 8 email al secondo, quindi dovrebbe andare bene.
Per i riassunti, puoi limitare questo valore a 14 al secondo impostando questa variabile globale di Discourse a 420, come mostrato di seguito nel tuo file di build del container:
Questo non è “esattamente” ciò che desideri, ma è molto vicino.
Poiché 14 al secondo (come da tuo messaggio) moltiplicati per 30 secondi fanno 420, questa impostazione globale limiterà i riassunti a circa 420 ogni 30 minuti, proprio come “dice” il codice:
Vedi anche:
Naturalmente, se il tuo canale SMTP sta inviando altre email, dovrai ridurre questo valore; oppure puoi configurare un canale diverso e separato per le email dei riassunti (come facciamo noi).
Nota: Questa impostazione globale è impostata di default a 10.000 ogni 30 minuti; che è un bel po’ di riassunti all’ora, se vuoi il mio parere ;). Quindi, noi l’abbiamo impostata molto più bassa per avere un “ragionevole” conto SendGrid ogni mese.
30 riassunti ogni 30 minuti = 1.440 al giorno, o circa 43.200 al mese (perché prima di apportare questa modifica qualche giorno fa stavamo inviando molti riassunti). Il mese prossimo, alzerò questo valore a circa 60 riassunti ogni 30 minuti, ovvero circa 86.400 riassunti al mese, più o meno.