webForumDet fria alternativet

Köra skript "i bakgrunden"?

PHPur PHP

3 svar · 291 visningar · startad av mmmMange

Medlem sedan jan. 2005110 inlägg
Frågan#1

Har ett formulär för uppladdning av bilder. När man laddar upp bilden så skapas också två mindre versioner av bilden. Detta tar ett par sekunder, så jag skulle vilja att själva bildförminskningsskriptet körs "i bakgrunden".. Så att användaren slipper vänta på det.

Hur löser man detta smidigast? Jag använder mig av GD för bildförminskningen.

Medlem sedan maj 2005562 inlägg
#2

kika på funktionen exec()

http://se.php.net/exec

Medlem sedan jan. 2005110 inlägg
#3

Provat med både system() och exec() tillsammans med ImageMagick. Men det verkar som att mitt skript väntar tills exekveringen är slutförd, detta trots att jag (enlig PHP-manualens instruktioner) dirigerar outputen till en textfil.
Det skall väl räcka att lägga till "> result.txt" för att dirigera om utdatan? Eller ska man skriva nåt speciellt (som Unix &-tecken) för att köra ett program "i bakgrunden" på WinXP?

Servern kör Windows XP, Apache 2 och PHP 5.

Medlem sedan juni 20008 205 inlägg
#4

Jag tror att det kan bli svårt på Windows. Under *NIX finns PCNTL där man skulle kunna använda pcntl_fork, men det har inte portats till Windows. Huruvida du omdirigerar utskrifterna från processen spelar, som du märkt, ingen roll för hur processen exekveras.

138 ms totalt · 3 externa anrop · v20260731065814-full.02a0f7de
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)