SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Re: [PERL] kan et perlscript udføres halvt?



Christian Borup wrote:

Christian Hansen wrote:


Kim Schulz wrote:


Christian Hansen wrote:


Hej

jeg arbejder ligenu på et debatforum, som er skrevet i perl. En tidlig
version kan ses og prøves her: http://www.telescopium.dk/debat/

Mit spørgsmål er. hvad sker der, hvis en bruger afbryder sin
browser/strømmen går på brugerens computer mm., mens han/hun er ved at
poste et indlæg, hvor en del filer opdateres? Køre scriptet så færdigt,
hvis det er kommet i gang, eller afbrydes det midt i det hele med de
underlige følger det måtte have? Kan man forestille sig filer, som er
halvt skrevet osv.

Jeg håber I forstår spørgsmålet, ellers skal jeg gerne forsøge at
præcisere det.



hvad brugeren gør så snart han har postet, det er irellevant for scriptet. bruwseren sender al sin script posting på en gang, og så sættes scriptet i gang. At det så ikke får lov at vise siden bagefter er bare ærgeligt.

Gælder det også, hvis bare der er tale om at få vist en side. Jeg arbejder nemlig på en model, hvor scriptet, der viser debatforummet, opdatere visse filer, hvis det er nødvendigt, når brugeren beder om at se forummet. Kan man sige, at når først et script aktiveres, så stopper serveren det ikke. det får lov at køre færdigt, uanset, hvad brugeren så end gør?


Generelt kan man ikke være sikker på noget som helst. Som udgangspunkt er man
rimeligt sikker på at ens program overlever så længe man ikke sender data
tilbage til klienten, hvis man sender data tilbage til klienten, burde man få
en SIGPIPE, hvis der ikke længere er forbindelse, men det kan man ikke være
sikker på.

Hvis man vil være sikker, er man nødt til at fork'e en ny process, og lave
arbejdet der...

En god ven af mig, Jørgen Bjørnstrup, har fundet ud af, at webserveren faktisk sender SIGTERM til perlscriptet, hvis der ikke længere er nogen til at modtage output. Og derefter sender den SIGPIPE i en lind strøm:-)


Det er derfor nødvendigt at lave en handler eller bede scriptet ignorere sådanne.

MVH Christian



 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:53
Denne side vedligeholdes af MHonArc .