hmm de skal skrives til disken eftersom de skal brændes på cd-rommer og sendes til vores kunder...
Det med at bruge sleep() havde jeg ikke lige tænkt over, men det kunne være en ide.. 10-20 sekunder fra eller til kan vel ikke skade når det i forvejen tager ca. 180 sekunder... pr. måned, altså Jeg skal så bare huske at sætte execution time op så der er tid til at scriptet kan køre færdigt, men det vil jeg forsøge
sleep(1); betyder scriptet sover i 1 sekund! Så vi snakker 2000 sekunder = 33 minutter og 20 sekunder! Måske du skal kigge på usleep() som kører med millisekunder.
Ideen var at lave en lille $count inde i while koden, så hver gang den når 100 (f.eks) ville det lave sleep(1); og nulstille $count. Så er det kun 20 sek. ;)
hmm så hvis jeg sætter en usleep(1) ind efter hver filoprettelse vil den have ca. 19.000 millisekunders pause for hver kunde, med nogle kunder vil der endda være flere filer der skal skrives..
Jeg prøvede med den sleep(1); men jeg kan ikke køre scriptet flere gange uden PC får et flip og skal genstartes.. kan der være nogen vej udenom dette?
En anden løsning kunne være at lave en form for sideskift. Så den kører f.eks. 10 kunder igennem og bagefter udskriver en side der indeholder noget ligende: <meta http-equiv="refresh" content="2;url=fil.php?start=10">
Det er så browseren der skifter side og fortsætter med de næste 10 kunder efter 2 sekunder.
Det kræver selvfølgelig at du kører scriptet i en browser.
Er det ikke for ustabilt at køre et "produktion" som er afhængig af meta - refresh og en browser? Så ville jeg hellere køre et cronjob, som kører det i bider, og evt. gemmer position i en fil eller database.
får et flip betyder at PC mister net-forbindelse, kan ikke starte en ny tab i IE7, kan ikke vise joblisten når jeg trykker ctrl-alt-delete, apache-serveren svarer ikke og kan ikke genstartes, ditto for mysql og det eneste der kan gøres ved det er en genstart af PC...
og det er ikke sådan at jeg kører X antal kunder lige efter hinanden.. Det er lavet så man skal ind og vælge start- og slut-måned, år og kunde inden man kan generere filerne
Jeg har fundet ud af at PC fik et flip pga memoryleak i de funktioner Apache2 bruger på winblows platform...
det med at indsætte den sleep(1) har i hvert fald gjort det en del nemmere at have med at gøre, selvom det tager en del længere tid
Hvis der bliver lagt et svar fra intenz får han pointene.. i hvert fald en del af dem
Hvis jakobdo kan komme med udregning på hvor lang tid det vil tage hvis jeg bruger en usleep(1) efter hver fil overvejer jeg gerne om den løsning skal bruges.. Det er ca 20.000 filer der skal oprettes, så hvor mange sekunder vil det blive til? (min hjerne er gået på strejke tror jeg)
sleep() er i sekunder.. men jeg ville vide om det ville være lige så effektivt at sætte en usleep(1) ind efter hver filoprettelse, som hvis jeg satte en sleep(1) ind for hver 200 filoprettelser
Eller var forslaget at den skulle sættes ind _sammen_ med sleep(1)?
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.