Jeg har et problem i form af, at jeg skal i korte udtræk køre et job der trækker nogle data ud af en database, og skriver det ned i en txt fil.
Problemet er ikke at lave det så det fungerer, men problemet består i at det er store mængder, og derfor timer browseren ud.
Nu vil jeg så lave det som et cron-job på apache...
Mit spg. går på hvordan jeg kan køre scriptet mest driftsikkert. Er der ex. timeout på et cron-job? Skal jeg i så fald få et cron-job til at eksekvere et andet script på serveren, der får det til at køre uden timeout. Problemet her er, at der ALDRIG må opstå timeout på scriptet, da der så mistes meget vitale data!
Er der nogle der kan skematisere kort for mig, hvad jeg skal gøre, om jeg skal lave en socket åbning til et script, der så bare vil ligge og køre i baggrunden?
Den grundlæggende ide er, at den skal udføre arbejdet og så sende filen til en email, eller et link til filen, hvis den er for stor! Så den kan egentlig godt lave det om natten (cron-job)...
Håber nogle kan give mig lidt input til at løse problemstillingen!
Det er vel lidt en balancegang. Godtnok skriver du: "Problemet her er, at der ALDRIG må opstå timeout på scriptet, da der så mistes meget vitale data!"
- men serveren må vel heller ikke gå ned, hvis noget går galt eller hænger. Derfor skal du nok sætte et tal istedet for '0' i coderdk's ellers udmærkede løsning :)
Hvis det er så vitale data som du skriver, så bør du jo nok bruge transactions... Hvis det er MySQL skal du kigge på InnoDB... Måske også dele det op i bidder så du laver en god bid ad gangen...
- så det gør med andre ord ikke noget, hvis serveren går ned(?) :)
Der er rigtig gode grunde til, et script har en maximal eksekveringstid. At tillade uendelig eksekveringstid er at sætte vand over til alvorlige problemer ... forlæng i stedet tiden til en realistisk størrelse ;o)
olebole, Ikke helt enig, i CLI har PHP ingen max limit, shell scripts kan og må typisk godt tage lang tid - Grunden til at der er en max execution time på web er sikkert for ikke at "genere" brugeren... Fra php.net under CLI: "Due to endless possibilities of using PHP in shell environments, the maximum execution time has been set to unlimited. Whereas applications written for the web are often executed very quickly, shell application tend to have a much longer execution time."
Synes godt om
Ny brugerNybegynder
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.