Avatar billede nemlig Professor
21. marts 2011 - 08:22 Der er 11 kommentarer og
1 løsning

Kør automatisk script2 når script1 er afviklet - undgå timeout

Hejsa.
Jeg har en fil, som afvikler 2 andre scripts. Jeg kalder de 2 scripts med:

file_get_contens('script1');
file_get_contens('script2');

Men jeg får desværre timeouts, da programafviklingen pr. scripts tager 30-40 sekunder - altså samlet set over 60 sekunder.
Serveren kører med safe_mode=On, og det er ikke muligt at anvende set_time_limit(0).

Er der andre muligheder, for at jeg kan afvikle de 2 scripts ved kun at klikke én gang på et link (eller kun kalde én fil via et cronjob).
Avatar billede olebole Juniormester
21. marts 2011 - 08:49 #1
<ole>

Vil det ikke hjælpe at lægge dem i to filer, hvor du kalder den ene og lader dette script sætte en location header i bunden, så der skiftes til den anden fil?

header("Location: den_anden_fil.php")


/mvh
</bole>
Avatar billede nemlig Professor
21. marts 2011 - 08:52 #2
Tak for det - jeg prøver lige og vender tilbage.
Avatar billede nemlig Professor
21. marts 2011 - 09:15 #3
Desværre ser det ud til, at der sker nøjagtigt det samme.
Hvis jeg afvikler de 2 scripts hver for sig, så tager de ca. 45 sekunder hver, men når jeg kører script1 med dit header-forslag, så skifter den ikke til script2 efter 45 sekunder, men får timeout efter 70-80 sekunder på script1.
Det lader dog til at script 1 er kørt.

Jeg prøvede også med nogle andre scripts, hvor programafviklingen tager 2x20 sekunder.
Når jeg anvender dit header-forslag, så virker det, da hele afviklingen kun tage 40 sekunder.
Når jeg ser i URL-linjen skifter den først til script2, når de hele programafviklingen er færdig - altså efter 40 sekunder.

Min konklusion er umiddelbart, at header() ikke løser det.
Avatar billede repox Seniormester
21. marts 2011 - 09:32 #4
IMHO er det et spørgsmål om hvad man kan få for pengene...

Når du ikke kan få det du mangler hos din nuværende udbyder, må du jo opgradere til dine behov er opfyldt...
Avatar billede phillips Nybegynder
21. marts 2011 - 09:37 #5
Hej nemlig

Du kan desværre kun løse det ved at lave scripts, der eksekveres hurtigere (dvs. optimere din kode) eller ved at skifte til en server, hvor du selv kan redigere indstillinger for time out og safe mode.
Avatar billede nemlig Professor
21. marts 2011 - 09:38 #6
#4 Præcis - men jeg skulle lige være helt skarp på, at der ikke findes en løsning indenfor de nuværende "rammer".
Jeg tager fat i Wannafind og ser hvad de kan tilbyde.
Avatar billede nemlig Professor
21. marts 2011 - 09:44 #7
#5 Kan se, at du kommer med samme konklusion.
Optimering af script kan jeg ikke gøre ret meget ved, da det er udenfor mine hænder.
Der er tale om kommunikation med nogle IHC-controllere, hvor flaskehalsen ligger i controllerne.
Avatar billede nemlig Professor
21. marts 2011 - 12:02 #8
Kan man på klientsiden løse det med noget javascript - altså når der klikkes på linket, så køres script1 og når der fx. er gået 90 sekunder, så køres script2.
Eller vil den også ramme time-out?
Avatar billede repox Seniormester
21. marts 2011 - 12:06 #9
Scriptet vil stadig lave en timout hvis der går for lang tid - det er (heldigvis) ikke noget klienten kan gøre noget ved...
Avatar billede nemlig Professor
21. marts 2011 - 13:02 #10
OK - Tak for jeres tilbagemeldinger.
Repox - du var først med løsningen eller rettere informationen om, at det ikke lader sig gøre med nuværende host-løsning.
Send venligst et svar.

PS: Wannafind skriver i øvrigt:
"Det er ikke noget vi kan ændre på vores shared servers.
Dog kan du kigge på open source hotellet, der er der safemode off."

Så nu overvejer vi lige løsningen.
Avatar billede repox Seniormester
21. marts 2011 - 13:16 #11
Hvis det skal være sådan noget low-budget hosting, så tilbyder surftown deres hoteller med safe_mode=Off billigere end Wannafinds opensource hosting løsning.
Avatar billede nemlig Professor
21. marts 2011 - 13:27 #12
OK - tak for info, og også tak til phillips for oplysningen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester