|
|||||||||||||||||||||||||||
"Frank Nørvig" <sslug@sslug> writes: > >Jeg forstår ikke helt, hvad det er, du vil sætte locks på? Du bliver nok > >nødt til at forklare dit problem lidt nærmere... > > Et perl-script kigger en mappe igennem efter filer hvert 5. minut. I denne > mappe kan f.eks. være 230 text-filer som hver især skal behandles og > konverteres til PostScript format. Jeg har allerede lavet det script som > behandler text-filerne (lad os kalde det convert.pl), men det belaster > serveren ret kraftigt, hvis der startes 230 eksemplarer af scriptet på én > gang. > > For at serveren ikke overbelastes, må der max. startes 5-10 eksemplarer af > convert.pl, og det er her jeg er løbet ind i en mur. Min første tanke var > lockfiler, men da min erfaring med Perl ligger på et meget lille sted, > ønsker jeg lidt hjælp til dette, eller eventuelt et alternativ. Lad os sige at du bruger fork() og exec() til at starte convert.pl. Så kunne du have en variabel der hed $children som du tæller en op hver gang du fork()'er. Du kan så installere en signalhåndteringsrutine til at tage sig af SIGCHLD, som tæller $children en ned. I den løkke hvor du fork()'er kan du så vælge f.eks. at vente lidt mens $children er større end hvad du mener er et acceptabelt antal samtidigt kørende processer. -- Christian Hemmingsen
|
||||||||||||||
|
||||||||||||||