Mehrere PHP-Prozesse laufen lassen?
Mehrere PHP-Prozesse laufen lassen?
am 11.09.2006 15:24:16 von georg116
Ich habe eine Web-Applikation, bei der der User auf Wunsch ein PDF
erzeugen lassen kann. Da die Erstellung des PDF teilweise sehr komplex
und langwiereig ist (bis zu 3min.), wird die "Haupt-Applikation" dadurch
blockiert.
Gibt es eine Möglichkeit, das Skript, dass das PDF erzeugt, als neuen
PHP-Prozess o.Ä. laufen zu lassen, sodass der User in der Zwischenzeit
in der "Haupt-Applikation" weiterarbeiten kann?
Ich habe mir in der PHP-Doku schon die div. pcntl und proc Befehle
angesehen, aber nichts passendes gefunden (oder übersehen).
dank,georg.
Re: Mehrere PHP-Prozesse laufen lassen?
am 11.09.2006 15:56:27 von Jens Riedel
Georg Weiler wrote:
> Ich habe eine Web-Applikation, bei der der User auf Wunsch ein PDF
> erzeugen lassen kann. Da die Erstellung des PDF teilweise sehr komplex
> und langwiereig ist (bis zu 3min.), wird die "Haupt-Applikation" dadurch
> blockiert.
>
> Gibt es eine Möglichkeit, das Skript, dass das PDF erzeugt, als neuen
> PHP-Prozess o.Ä. laufen zu lassen, sodass der User in der Zwischenzeit
> in der "Haupt-Applikation" weiterarbeiten kann?
Du kannst das z.B. per AJAX machen. Der "PDF generieren"-Button erzeugt
dabei z.B. den asynchronen Aufruf deines PDF-Erzeugungs-Skripts, sobald
das durch ist, wird automatisch ein Download-Link eingeblendet.
Gruß,
Jens
--
Der Kluegere gibt nach - Eine traurige Wahrheit:
sie begruendet die Weltherrschaft der Dummen.
- Marie von Ebner-Eschenbach
Re: Mehrere PHP-Prozesse laufen lassen?
am 11.09.2006 15:57:21 von thornythegod
Georg Weiler schrieb:
> Ich habe eine Web-Applikation, bei der der User auf Wunsch ein PDF
> erzeugen lassen kann. Da die Erstellung des PDF teilweise sehr komplex
> und langwiereig ist (bis zu 3min.), wird die "Haupt-Applikation" dadurch
> blockiert.
>
> Gibt es eine Möglichkeit, das Skript, dass das PDF erzeugt, als neuen
> PHP-Prozess o.Ä. laufen zu lassen, sodass der User in der Zwischenzeit
> in der "Haupt-Applikation" weiterarbeiten kann?
>
> Ich habe mir in der PHP-Doku schon die div. pcntl und proc Befehle
> angesehen, aber nichts passendes gefunden (oder übersehen).
Die von dir angesprochenen Befehle bewirken auch nur das "forken" eines
Prozesses - paralleles Rechnen ist nicht möglich.
Mögliche Lösungen wären:
1. Das Auslagern der PDF-Erzeugung auf einen dedizierten Server, der
keine 3 Minuten dafür benötigt.
2. Das Erstellen des PDF's losgelöst vom Nutzer
3. Alle anderen, die mir gerade nicht einfallen ;)
Gruß,
Torsten
Re: Mehrere PHP-Prozesse laufen lassen?
am 11.09.2006 16:00:16 von Niels Braczek
Georg Weiler schrieb:
> Gibt es eine Möglichkeit, das Skript, dass das PDF erzeugt, als neuen=
=20
> PHP-Prozess o.Ä. laufen zu lassen, sodass der User in der Zwischenzei=
t=20
> in der "Haupt-Applikation" weiterarbeiten kann?
Starte das Skript indirekt über einen eigenen Request (zB. via
-Tag). Damit hast du das entkoppelt.
> Ich habe mir in der PHP-Doku schon die div. pcntl und proc Befehle=20
> angesehen, aber nichts passendes gefunden (oder übersehen).
Das wäre auch in den seltensten Fällen portabel, weil alle netten[tm]=
Funktionen meistens bei den Hostern abgeschaltet sind.
MfG
Niels
--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: Mehrere PHP-Prozesse laufen lassen?
am 12.09.2006 11:39:45 von georg116
Niels Braczek wrote:
> Georg Weiler schrieb:
>
>> Gibt es eine Möglichkeit, das Skript, dass das PDF erzeugt, als neuen
>> PHP-Prozess o.Ä. laufen zu lassen, sodass der User in der Zwischenzeit
>> in der "Haupt-Applikation" weiterarbeiten kann?
>
> Starte das Skript indirekt über einen eigenen Request (zB. via
>
-Tag). Damit hast du das entkoppelt.
Niels, das klingt interessant, blicke aber noch nicht 100%
durch...könntest du mir das vielleicht etwas näher erklären?
....vielleicht stehe ich ja auch einfach nur auf der Leitung.
dank,georg
Re: Mehrere PHP-Prozesse laufen lassen?
am 12.09.2006 13:50:06 von Niels Braczek
Georg Weiler schrieb:
> Niels Braczek wrote:
>> Georg Weiler schrieb:
>>=20
>>> Gibt es eine Möglichkeit, das Skript, dass das PDF erzeugt, als neu=
en=20
>>> PHP-Prozess o.Ä. laufen zu lassen, sodass der User in der Zwischenz=
eit=20
>>> in der "Haupt-Applikation" weiterarbeiten kann?
>>=20
>> Starte das Skript indirekt über einen eigenen Request (zB. via
>>
-Tag). Damit hast du das entkoppelt.
>=20
> Niels, das klingt interessant, blicke aber noch nicht 100%=20
> durch...könntest du mir das vielleicht etwas näher erklären?=20
> ...vielleicht stehe ich ja auch einfach nur auf der Leitung.
Im Hauptskript gibst du ein

aus. In forked_skript.php kannst du nun alles tun, solange du willst
(und der Server dich lässt). Am Schluss lieferst du noch ein Bild aus,
wenn du nett bist und IE-User das hässliche Kästchen ersparen willst.=
MfG
Niels
--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: Mehrere PHP-Prozesse laufen lassen?
am 12.09.2006 13:56:32 von Jens Riedel
Niels Braczek wrote:
> Am Schluss lieferst du noch ein Bild aus,
> wenn du nett bist und IE-User das hässliche Kästchen ersparen willst.
3 Minuten Platzhalter ist auch nicht schön... ;-)
Gruß,
Jens
--
Der Kluegere gibt nach - Eine traurige Wahrheit:
sie begruendet die Weltherrschaft der Dummen.
- Marie von Ebner-Eschenbach