Cron-Job - viele Datenbankeinträge abarbeiten und mehrfache Scriptläufe

Ein bisschen was schon ;-)

Hab auf Arbeit jeden Tag damit zu tun :-) Falls das jedoch eine Job-Anfrage werden soll: Ich habe kaum Zeit für ein derart großes Projekt. Das will gut überlegt sein. Datensicherheit, Skalierung, Robustheit - das alles sind Kriterien, die man hier beachten sollte.

Du brauchst auf jeden Fall einen Applikation-Server wie JBoss dafür. Tomcat alleine wäre hier wohl nicht geeignet.

EDIT: Was ich aber noch anmerken wollte - wenn der SMS-Gateway eine Sekunde braucht, braucht er auch eine Sekunde, wenn du es Multithreaded machst. Das solltest du bedenken.
 
Naja, die frage ist ja, ob er auch mehrere Anfragen gleichzeitig bedienen kann (Ich habe KA wie ein SMS-Gateway arbeitet). Falls ja, sollte man das nutzen :P
 
Mit einem Shellskript und einer CLI/PHP Anwendung sollte das auch umsetzbar sein.

Der Verbindungsaufbau benötigt relativ viel Zeit, wenn mehrer (zB 2-5) Verbindungen gleichzeitig geöffnet werden sollte das keine Problem sein.

Aber die Performance ist hierbei wohl doch eher unwichtig, ob die Kunden nun sofort oder erst nach 30 Minuten die Nachricht erhalten sollte kein Problem darstellen oder?

Man könnte eine Art Stack Tabelle einrichten wo die Task für den Cron gespeichert werden. Bei Erfolgreicher Abarbeitung wir der Eintrag gelöscht, bei einem Fehler entsprechend markiert.

Du sagst das ca. 1 Sekunde für jede Nachricht benötigt wird.
Man könnte ein Shellskript erstellen das jede Minute ausgeführt wird. Das Skript könnte mit jedem Aufruf bis zu 60 Aufgaben abarbeiten und die entsprechende Aufgabe an dein PHP Mail Skript übergeben. So kannst du mehrere PHP Prozesse gleichzeitig starten.

Das PHP Skript schickt die SMS und löscht den Task aus der Stack Tabelle oder markiert ihn als gescheitert bzw. in Bearbeitung.

Man muss aber darauf achten das nicht alle Anfragen gleichzeitig gestartet werden. Und wenn zu viele Fehler vorliegen sollte der Vorgang abgebrochen werden.

Das sind jetzt nur einpaar Gedanken Gänge von mir.
 
Zuletzt bearbeitet:
Ich kann nütürlich auch 100 Anfragen in der Sekunde senden. Das Problem ist in PHP "nur" das ich das über eine Schleife lösen müsste und dann eben pro Sekunde nur eine Anfrage senden kann weil ich ja auf die Antwort warten muss.

Kann mir das: http://php.net/pcntl jemand erklären****?
 
Zurück