| | | | |
| |||||||
| | LinkBack | Themen-Optionen | Bewertung: |
| | |
| Erfahrener Benutzer | Hallo Luetz ich habe mal wieder ein Denkproblem! Und zwar mache ich grad zu meinen Shopscript einen kleinen ganz einfachen Newsletterversand,der auch prima funktioniert! Nun ist es ja aber so wenn eine größere Anzahl von email Adressen in der Datenbank stehen und der Versand des Newsletters deshalb länger dauert als die Beschränkung einer Scriptlaufzeit würde das Script ja dann abbrechen ohne das alle die Mail erhalten haben! Meine Frage nun,wie kann ich es umsetzen das Script z.B. nach 100 versendeten Mails anzuhalten und wieder neu zu starten an der Stelle bzw. einer Stelle nach der angehaltenen Stelle wieder zu starten zum Weiterversand? Ich würde Chronjob gern vermeiden! Ich danke für ein paar Tipps! mfg der litter
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Supermoderator HD Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Meistens wird das so gemacht, dass die Zeit gezählt wird, die das Skript braucht. Braucht es zu lange, wird die aktuelle Datensatzposition gespeichert und das Skript beendet. Der User muss dann auf einen Button klicken, um den nächsten Block abzuarbeiten. Manche machen ihm es hier einfacher und verwenden Meta- oder JavaScript-Refreshs.
__________________ Refining Linux Advent Calendar series “24 Outstanding ZSH Gems” |
| |
| | |
| Erfahrener Benutzer | Was bräuchte ich für funktionen um die zeit mitzuzählen! Da die Daten ja aus eine DB Tabelle kommen müsste ich ja auch den Stand wo es abgebrochen wurde speichern um da dann wieder anzusetzen! Oder verstehe ich da was vom Grund her falsch?
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Bei einem Script in dem Bereich an dem ich mal weiterentwickelt habe, habe ich es so gelöst, dass in einer extra Tabelle für jeden größeren Versand Informationen standen: Uhrzeit wann der versand startet alle wie viele minuten er sendet wie viele mails pro versandwelle, die ID des letzten Users an den geschickt wurde PoolId (User waren in Pools unterteilt da das System mehrere Newsletter verwaltete) Id des Letters Id des Mailservers Das Script das via Cron (je nach Konfiguration z.B. alle 30 Minten) aufgerufen wurde, hat dann überprüft ob noch mails zu versenden sind für den jeweiligen auftrag, dann hat es sich die die userdaten (für die personalisierung) abgerufen + den Mailinhalt und hat in einer Schleife angefangen zu senden. Nach jeder gesendeten Mail wurde die Id des letzten Users in der Datenbank geändert (mögen zwar viele querys sein, aber war die einzige Lösung die das System auch bei Kunden halbwegs vernünftig laufen liesen mit recht kurzen max_execution_time, oder servern die öfters mal stärker ausgelastet waren). Dann wurde überprüft wie viel von der max_execution_time noch zur Verfügung steht, wenn die Zeit einen gewissen rahmen unterschritt, wurde das Script vorzeitig abgebrochen und konnte beim nächsten durchlauf bei dem letzten User wieder weitermachen. Man sollte bei sowas auch sehr darauf achten, dass eine gewisse Zeit (15 - 20 Minuten oder mehr war damals ein guter Wert) zwischen dem Versand größere Mengen an Mails liegt, da einige Mailserver (AOL ist da immer sehr schnell gewesen) wenn sie zu viele Mails in kurzer Zeit erhalten von einem Mailserver, dichtmachen und die Mails direkt ohne Bouncemail oder sonstwas im Nirvana landen.
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| |
| | |
| Erfahrener Benutzer | Tach Leute ich muss den mal wieder hochholen. Und zwar habe ich nun folgendes Script geschrieben für mein Ziel. PHP-Code: Mein Problem ist nun folgendes. Es erfolgt ein Versand aber eben nur an die ersten 2 EMpfänger und dann ist Schluss es bleibt hängen und macht nicht mehr weiter. Ich verstehe nicht warum, suche schon ne Weile den Fehler. Nachdem ich den Sende Button drücke steht dann folgendes in der Browseradressleiste. Code: http://localhost/lit-shop/admin/nl_send_form.php?durchlauf=2&send_letter=1
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de Geändert von litterauspirna (17.04.2009 um 16:24 Uhr). |
| |
| | |
| Erfahrener Benutzer | Heist das ich muss das Formular als method="get" abschicken? Also das der Sendebutton ein $_GET['send_nl']; wird? Weil so richtig verstanden habe ich den Post jetzt net. [EDIT] auch wenn das Formualr als GET verschickt wird funktioniert es nicht. Es werden nur 2 versand.
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de Geändert von litterauspirna (17.04.2009 um 17:15 Uhr). |
| |
| | |
| Erfahrener Benutzer | Ja also alles auf GET umstellen, das habe ich getan, aber er sendet trotzdem nur an die ersten 2 Mailempfänger raus. Der Code. PHP-Code: Code: http://localhost/lit-shop/admin/nl_send_form.php?send_letter=0&durchlauf=2
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de Geändert von litterauspirna (17.04.2009 um 17:41 Uhr). |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Script mehrfach ausführen | .David. | PHP Tipps 2008 | 11 | 21.01.2010 18:51 |
| ASP URL in einem PHP Script ausführen?!? | becks123 | PHP-Fortgeschrittene | 12 | 06.04.2009 10:11 |
| Nach Ablauf einer Zeit Script ausführen | PHP-Fortgeschrittene | 5 | 20.12.2005 15:11 | |
| Script regelmäßig ausführen | PHP Tipps 2005-2 | 7 | 13.08.2005 16:33 | |
| PHP Script von einem fremden Server ausführen lassen. | Zero.exe | PHP Tipps 2005-2 | 4 | 11.08.2005 01:05 |
| IncludeDatei erst an bestimmter Stelle ausgeben? | PHP Tipps 2005-2 | 11 | 29.06.2005 14:12 | |
| [Erledigt] Script nach 1 minute Ausführen.. keine Sekunde früher. | PHP Tipps 2005 | 6 | 06.05.2005 22:52 | |
| zu einer stelle im script springen | PHP Tipps 2005 | 12 | 15.04.2005 12:05 | |
| Befehl erst nach Bestimmter Zeit ausführen? | PHP Tipps 2005 | 21 | 28.02.2005 00:13 | |
| [Erledigt] shell script ausführen | PHP-Fortgeschrittene | 15 | 01.01.2005 21:28 | |
| shell script ausführen | PHP Tipps 2004-2 | 0 | 28.12.2004 21:02 | |
| script in shell über shell_exec ausführen ... ?!?!?! | PHP Tipps 2004 | 1 | 01.09.2004 14:05 | |
| Script nur einem am Tag ausführen? | themonk | PHP Tipps 2004 | 1 | 14.08.2004 13:37 |
| bei einer bestimmten zahl ein script ausführen? | Eddaholzbein | PHP Tipps 2004 | 4 | 23.06.2004 14:55 |
| PHP Script ausführen | PHP Tipps 2004 | 6 | 03.06.2004 14:13 | |