phpbar.de logo

Mailinglisten-Archive

[php] server-timeouts durch zu lange prozesse umgehen

[php] server-timeouts durch zu lange prozesse umgehen

Theodor Springfeld php_(at)_phpcenter.de
Tue, 22 Jan 2002 12:57:27 +0100


Hallo Liste,

ich generiere auf einem lamp (suse 7.3, php 4.06) produktdatenblätter
aus einer mysql direkt als pdf mittels der pdf-klasse:
http://www.ros.co.nz/pdf. (anfang dezember hatten wir`s ja schon einmal
davon.)

das problem ist, dass es zuviele pdf`s sind und ich unweigerlich
einen server-timeout bekommen werde.
da der provider save_mode eingeschaltet hat und außerdem zu faul ist,
für einzelne kunden in den virtual host einstellungen dedizierte timeouts zu
setzen,
brauche ich eine möglichkeit den server zu überlisten:

folgendes, so habe ich gehört, soll möglich sein:
------------------------------
1. man generiert nur eine gewisse anzahl an pdf`s (innerhalb der
zeitbegrenzung),
2. speichert das zwischenergebnis, indem man die klassenobjekte serialisiert
    in ein file (oder db),
3. redirected auf ein anderes script,
4. redirected zurück und nimmt die generierung wieder auf,
5. schreibt die neue zwischenmenge zu der bereits vorhandenen dazu
    und wiederholt den vorgang, bis alle daten vorhanden sind, um dann
    aus den gesamtdaten die pdf-generierung zu starten.

da jetzt keine db-abfragen und sonstige array-jonglierereien mehr gemacht
werden müssen, ist allein daraus schon ein performance-vorteil einsehbar.
doch ist es wirklich so, dass der server jetzt keinen timeout mehr liefert?
und wenn ja, warum?

ausserdem habe ich dann die schwierigkeit, dass ich zwar die daten habe,
aber die klassenobjekte nicht mehr vorhanden sind. ich habe zwar vor dem
abspeichern der daten das objekt serialisiert aber anscheinend wird beim
deserialisieren, das objekt mit seinen methoden und var usw. nicht mehr
initialisiert. in der onlinehilfe auf php.net habe ich keine brauchbaren
schnipsel
gefunden, die mir zeigen wie ein objekt korrekt serialisiert bzw.
deserialisiert wird.

hat einer von euch dazu ein code-beispiel,
kann einer sagen, ob dieser weg überhaupt gehbar ist,
oder gibt es sonstige alternativen?

vielen dank für eure hilfe im voraus und einen schönen tag

theo springfeld


php::bar PHP Wiki   -   Listenarchive