Script nach bestimmten Wert anhalten und dann wieder fortsetzen

Begonnen von lit-web, 03. März 2009, 13:07:26

Vorheriges Thema - Nächstes Thema

lit-web

Hallo Leutz heute muss ich mich mal wieder Hilfesuchend an euch wenden.
Ich habe zwar zu meinem problem eine Idee, aber momentan weis ich nur nicht wie umsetzen.
Und zwar programmiere ich gerade an meinem Newsletter in meinem online Shop Script. Nun kann es aber sein das mal sehr viele Emailadressen drin stehen und das Script abbricht wenn maximale Zeit erreicht ist. So wiet so gut.
Meine Idee ist nun folgende. Ich lese die Emailadressen Tabelle aus und ermittel erst mal die Gesamtzahl an vorkommenden Empfängern. Dann lese ich die Tabelle noch mal aus für den Mailversand. In der whileschleife versende ich dann nach und nach die Email an die Empfänger und lasse in der Schleife einen Zähler mitlaufen. Und aller 50 versendeten Mails soll das Script abbrechen und dann wieder die nächsten 50 Mails versenden und das so lange bis nichts mehr da ist.
Das wieder ansetzen des Scriptes zum Weiterversand will ich dann mit einem meta refresh machen.
Soweit zur Theorie, nur weis ich momentan überhaupt nicht wie ich das grad umsetzen soll Programmtechnisch.
Hier men derzeitiger code,ab hier weis ich nicht mehr weiter.
Ich muss da den Vergleich finden ob die Zählvaribable entweder 50 ist oder eben dann immer wieder 50 höher ist, da dann den abruch machen und immer per meta refresh weiter senden bis der Vergleich der Zählervariablen mit dem Gesamtempfengerwert gleich ist und dann komplett das Script beenden.



 
 
Also wenn Ihr mir da ein wenig Hilfestellung geben könntet wäre das super genial für euch.
Gruß litter

Taugenichtse die was haben,haben was gegen Habenichtse die was taugen!!!!


kenny

check doch einfach ob deine mitlaufende variable $start 50 ist... Wenn ja.. dann ruf die Seite einfach nochmal auf.. und übergib ein offset für den nächsten Schub an Versendungen. Brauchst natürlich dann auch noch eine 2te Mitlauf-Varianle, die die Anzahl der Durchgänge zählt ($i).
 
ungefähr so:



 
 
Hoffe ich hab nichts vergessen. Sollte aber ja auch erstmal nur ein Denkanstoss sein.
Schön find cih die Lösung ehrlich gesagt irgendwie nicht.

Powie

boah.... was soll das ganze Konstrukt bringen? Ist ja grausam  [/uploads/emoticons/icon_e_surprised.gif.a005678239f11b45b64b526b2c82e9a1.gif\" alt=\":o\" />]

kenny

Soll bringen, dass bei einem Dateiaufruf maximal 50 mal sendmail() aufgerufen wird, um die maximal Scriptlaufzeit nicht zu überschreiten.
Hab selber gesagt das ich die Lösung nicht gerade schön finde.
Hast du eine andere Idee?
Ist nicht trotzig gemeint. Würde mich echt interessieren, wie man so ein Problem umgehen könnte außer so \"dreckig\".

maui muc

Wie wäre es mit der Idee, dass man einen Timer und einen Zähler mitlaufen lässt. Den Timer vergliecht man bei jedem Durchgang mit der max_execution_time. Kurz bevor die max_execution_time überschritten wird ruft man einfach das Script erneut auf, übergibt den Zähler und macht da weiter wo man aufgehört hat.

kenny

Würd sagen, dafür hängt die Performance viel zusehr von der aktuellen Serverauslastung ab.
Aber eine Idee wär\'s.

lit-web

Das hat aber einen Haken, man müsste die letzte Empfenger ID speichern und dem Script dann sagen das es bei der darauffolgenden wieder weitermachen soll.
Da ist die Variante das mit einem reinen Zähler zu machen besser. Ich habe schon überlegt das in Form wie einer Blätterfunktion zu machen, aber da weis ich momentan auch grad nicht weiter.

Taugenichtse die was haben,haben was gegen Habenichtse die was taugen!!!!


kenny

Die ID musst du nicht speichern. Das wird doch mit dem SQL Offset gemacht.
Meine Methode entspricht der einer Blätterfunktion. Nur das halt automatisch durchgeblättert wird.

mahe

Warum haut ihr die ned einfach alle ins BCC oder verwendet eine Mailinglist dafür?

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


Powie


Original von mahe Warum haut ihr die ned einfach alle ins BCC oder verwendet eine Mailinglist dafür?
[/quote]
 /uploads/emoticons/icon_e_wink.gif.c059000ae48ff64afa53be0962c021f2.gif\" alt=\":wink:\" />  [/uploads/emoticons/icon_e_surprised.gif.a005678239f11b45b64b526b2c82e9a1.gif\" alt=\":o\" />]

Powie


kenny

Meine Lösung ist schon allein deswegen scheisse, weil ja der Inhalt der zuversendenen Mail garnicht übermittel wird  :gaga:

raiser

Ich würde an dieser Stelle auch ein !#/bin/bash ansetzen.
Oder \"PERL\" oder.... ASH oder....
Ansätze gibt es da viele... nur mit php wird es nie sauber.

Wissen ist das einzige Gut, dass sich vermehrt, wenn man es teilt! (Marie von Ebner-Eschenbach)




Irren ist menschlich!




Wer andern eine Grube gräbt,


sollte darüber nachdenken,


ob sie tief genug ist!!!!




Kameradschaft ist, wenn der


Kamerad schafft !!!!


Powie

Siehe pNL; da hab ich für sowas ein Shellscript welches genau das macht!

raiser

Jo, aber du bist ja auch dein EIGENER Admin  [/uploads/emoticons/icon_e_surprised.gif.a005678239f11b45b64b526b2c82e9a1.gif\" alt=\":o\" />] ....
Tja Litti, ich würd sagen, wenn du nicht mit der BASH rankommst, hast du den falschen Provider...
Da fällt mir ein.... Ich brauch schon wieder nen Webserver. Hat der powie noch Kapazität  /uploads/emoticons/icon_e_wink.gif.c059000ae48ff64afa53be0962c021f2.gif\" alt=\":wink:\" /> ?
[ot]
Werbung
Wollt damit nur sagen.... da wirst du rundum glücklich sein. Für kleines Geld: SSH, cronjobs, etc...
[/ot]
 
lG Henrik

Wissen ist das einzige Gut, dass sich vermehrt, wenn man es teilt! (Marie von Ebner-Eschenbach)




Irren ist menschlich!




Wer andern eine Grube gräbt,


sollte darüber nachdenken,


ob sie tief genug ist!!!!




Kameradschaft ist, wenn der


Kamerad schafft !!!!


all your base are belong to us / Discord