Forse fatto sin dall'inizio così si, vedi, il problema sta nel cliente....che novitàOriginariamente inviato da filippo.toso
Non sarebbe più semplice creare una tabella chiamata "coda" nella quale inserisci in coda tutti i messaggi che devi inviare. Poi lo script prende 50 messaggi alla volta, li invia e li elimina dalla coda.
In questo modo ti basta aggiungere in coda i nuovi messaggi senza complicati controlli incrociati.
Lo script che invia le mail deve solo controllare la coda. Se ci sono messaggi li invia, altrimenti non fa niente.![]()
Inizialmente hanno detto...mmmm newsletter, si le conosciamo, gia sentite nominare...ah si io sono iscritto a quelle di cucina, si si, facciamole, e mi hanno chiesto se era possibile prevederle nel loro sito (premessa: sono un ente, quindi lunghi e macchinosi in qualsiasi cosa).
Secondo me non è che avessero ben ben chiaro cosa fossero e come funzionassero, ora si puo' automatizzare tutto, ma nessun applicativo potrà mai inventarsi e srivere delle newsletter di suo pugno, ci vuole sempre un omino dietro che dica cosa mandare, ecco il loro omino è un po' pigro o forse non ha ancora realizzato la cosa, sai, quando parli/spieghi al cliente una cosa e senti un coro di si.....si si....si....certo...sisisi...siiiii......ma certo...sii....ma in realtà sono: non capisco un tubo e non voglio far figure a chiedere e quindi dico sisisisi che è più bello e professionale, ecco, così.
Quel che dici tu in effetti viene fatto dalle newsletter originali, da dove non è ancor partita una newsletter (non so se mi spiego!), allora, visto che sto facendo altri lavori sempre per loro, quindi abbiamo ancora i conti apertiho proposto di fare una sorta di newsletter riassuntiva di tutte le news che loro inseriscono, anche perchè non saprei cos'altro potrebbero inviare.
Quindi volevo lasciare quel che c'è, così com'è, loro inseriscono una o più newsletter, si accodano e partono una dopo l'altra, senza cancellarle, così hanno voluto, una sorta di archivio...boooo.
Le nuove le vedevo indipendenti, la fate quel che vi pare, mandate, non mandate, archiviate insomma divertitevi, quelle nuove invece fanno il loro lavoro periodicamente ed automaticamente.
Credo comunque di essere arrivato alla soluzione:
Le vecchie newsletter le lascio così come sono, non tocco nulla, vado invece ad aggiungere un nuovo campo enum nella tabella delle mail "inviata_news" sul quale faccio il medesimo gioco delle vecchie, quindi rimangono indipendenti anche gli invii, al crontab delle nuove do un orario leggermente diverso, se il primo passa al minuto 4 di tutte le ore di tutti i giorni, l'altro passerà al minuto 34 di tutte le ore di tutti i giorni, nessun accavallamento di query e nessun problema di dovre fermare nessuno. Un terzo crontab passerà con cadenza settimanale a controllare, estrarre e compilare la nuova newsletter, buttata via ad ogni fine invio e chiaramente azzerando tutti i campi "inviata_news" per il prossimo ciclo di invii.
Che dici?

Rispondi quotando