Sto lavorando su una funzionalità che consentirà all'utente di configurare un'e-mail da inviare al momento che sceglie. Una volta che ha salvato questa configurazione, l'e-mail verrà consegnata al momento prescelto (o intorno a quel momento) ogni giorno fino a quando non disattiverà tale configurazione o la cancellerà. Ci possono essere molte di queste configurazioni con tempi diversi.
Finora stavo facendo qualcosa del genere:
- Esegui un cron job ogni 10 minuti.
- Cerca le configurazioni email che devono essere eseguite entro (ora - 10 minuti).
- Invia quelle email e aggiorna i log di stato.
Questo funzionava benissimo ma ha poche insidie.
-
Le email configurate ai tempi di intersezione come 02:00 non sono state inviate a volte.
-
A causa di una distribuzione o di un elevato utilizzo della CPU, il mais non è stato eseguito affatto.
In entrambi gli scenari sopra riportati, le email che non sono state selezionate non verranno raccolte nuovamente nelle prossime 24 ore.
Come dovrei andare avanti per progettare un sistema robusto che garantisca l'invio di tutte le email.
Se è importante, io sto usando Django e una macchina Linux.