Hi Tom,
Danke für den netten Rückausflug in die Urzeiten der automatischen Datenverarbeitung :)
Nun gut. Durch die Mehrplatzsysteme und erst recht durch die Arbeitsplatzcomputer wurden dialogorientierte Programme möglich. Dazu muss es eine direkte Prozesskopplung zwischen Eingabe-Verarbeitung-Ausgabe geben, also eine persistente _Verbindung_ und möglichst keine Verzögerung zwischen der Absendung einer Nachricht in einer der Stufen und dem Eintreffen beim Empfänger. Also Verarbeitung sendet Nachricht an Ausgabe, dass jetzt gerade 100 Mails fertig sind, jetzt 101, jetzt 102...
Dieses Verhalten lässt sich mit der Client-Server-Technologie, wie sie mit HTTP realisiert wird, nicht so einfach nachbilden. Jede neue Auskunft erfordert einen neuen Request, jede Eingabe öffnet einen neunen Prozess am Server. Wenn man hier also nun versucht, die Daten, Zustände und Ereignisse der verschiedenen zu einer Aufgabe gehörenden Prozesse zusammenzuführen, vergewaltigt man quasi das System. Es ist dafür nicht gemacht worden. Chat unter PHP ist deshalb auch nicht so praktisch.
Ja leider ist das so wie du sagst nicht so einfach, wenn keine persistente Verbindung hergestellt ist, und wirkt sich auf die Performance des Servers auch nicht gerade positiv aus.
Was heißt das nun für das Massenmailprogrammm?
Du solltest kein Programm schreiben, das eine direkten Dialogbetrieb erforderlich macht. Du solltest Dein Programm prozessoreintiert schreiben.
Jeder angestoßene "Job" muss alleine zurechtkommen und seine Fehlermeldungen so ablegen, dass sie zur Not auch nach drei Wochen noch gesichtet werden können.
Wie genau soll ich das verstehen, das ich das Programm Pozessoientiert schreiben soll ? Ich sollte so eine Art Queue am Server erstellen (zb speichern der unerledigten Aufgaben in Mysql), die automatisch dort in "aller Ruhe" abgearbeitet wird. Also ich gebe den Auftrag XY in Arbeit , und lasse das Script einmal laufen. Zwischendurch kann ich eine Abfrage an das Script starten, dass mir dann über den aktuellen Bearbeitungsstatus Auskunft gibt, zb "237 von 1278 Mails erfolgreich bearbeitet...".
Mich würde noch interessieren, ob ich auf dem Server auch so eine Art Batch Prozess starten kann, der im Hintergrund abläuft und sich zb auch zu bestimmten Zeitpunkten automatisch starten lässt -> Beispiel Online Games, da muss ja auch jede Sekunde einmal die Datenbank aktualisiert werden.
Und nun noch eine Bitte: Das script sollte NICHT zum Spammen
eingestzt werden, sondern nur zum kontrollierten Versand von
erwünschten Newsletters oder Terminmitteilungen o.ä.
Danke für das Script, ich werde es mal einbauen :)
freundliche Grüsse und nochmals Danke,
Daniel
Das ist der ganze Jammer, die Dummen sind immer so sicher und die Gescheiten so voller Zweifel.
[Bertrand Russell]