Hej på er!
Jag misstänker att någon liknande fråga har tagits upp tidigare, men jag har sökt och inte hittat något bra svar.
Jag har en applikation som importerar data från en textfil som får timeout hela tiden eftersom det ofta är extremt mycket data.
Nu provade jag att importera 129.000 rader och jag får timeout hela tiden.
Efter lite sökning i Google och här på wF, kan man dra följande slutsats:
Man bör använda:
set_time_limit(0);
Det ska alltså innebära att man stänger av script timeout helt och hållet. Dock funkar inte det. Jag har även provat med andra värden i den funktionen, typ 7200, vilket skulle betyda två timmar.
Jag kör PHP 4.1.1 på Win2k och IIS.
safe_mode = off
Jag använder mig av bl.a. file() och mssql-funktioner, om det kan spela någon roll... Jag läste någonstans att man inte kunde använda set_time_limit() om man i samma script använde file(), men är det någon som vet hur det egentligen ligger till?
Tacksam för hjälp...
::mikeEast
FlashXMedlem sedan nov. 1999992 inlägg Jag brukar lägga till
ini_set("max_execution_time","9999");
ignore_user_abort(true);
set_time_limit(9999);
i skript som ska köras längre. Att stänga av time_limit helt är kanske inte så praktiskt om man lämnar servern obevakad.
Oki... Jag ska importera två listor till nu...
Får se om det funkar...
Tack!
::micke
Owella...
Ett mer utförligt svar på om det funkade eller inte får vänta... De två nya listorna var bara på 13.000 rader var och de tog bara tre minuter att importera, så jag vet inte om det hade blivit timeout om det hade varit mer poster...
Återkommer...
::m
Well...
Nu håller jag på att importera en fil med 275.000 rader och får timeout hela tiden...
Är det någon som vet hur man löser detta?
ini_set("max_execution_time","9999");
ignore_user_abort(true);
set_time_limit(9999);
fungerar inte..
::m
BatboyMedlem sedan jan. 2000888 inlägg Kör ditt script från kommandoprompten, om du har möjlighet.
/j
FlashXMedlem sedan nov. 1999992 inlägg set_time_limit() har ingen effekt på saker som körs utanför skriptet, exempelvis system-kommandon, databasfrågor och liknande. Att läsa in en textfil tycker jag dock borde tillhöra själva php-skriptet men det kanske inte är så?
Hur får du timeouten. När jag kör en del skript som tar lång tid, så brukar webbläsaren i sig göra en timeout (efter 5min tror jag) men skriptet brukar ändå slutföra uppgiften när jag senare kollar resultatet.
Att köra det från prompten är nog dock det bästa om den möjligheten finns.
[r]
Såg inte ditt tidigare inlägg:
De två nya listorna var bara på 13.000 rader var och de tog bara tre minuter att importera, så jag vet inte om det hade blivit timeout om det hade varit mer poster...
Eftersom timelimit är 30sek så måste det på något sätt fungerat :)
Löst...
Hej på er...
Tack för svaren...
Jag löste problemet genom att jag hittade CGI timeout i roten på IIS och satte den till 7200. Svårare än så var det inte... men man ska ju hitta det också...
Det går alltså inte att göra det med nåt script i PHP om man inte kan använda LDAP/ADSI eller vad man nu måste göra... I och med att jag har en alldeles egen dedikerad server till detta ämnar jag inte att forska vidare i det heller...
Problemet från början var nog att använda Win2k och IIS överhuvudtaget, men SQL Server är ju så bra... :)
Tack i alla fall..
::mikeee