Portál AbcLinuxu, 9. května 2025 00:35

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
9.9.2010 21:46 Jiri
Rozbalit Rozbalit vše Re: Django 1.2.2 uzavírá kritickou chybu
Odpovědět | Sbalit | Link | Blokovat | Admin
Zrovna vcera jsem narazil na zajimavy problem. Jak poslat klientovi soubor, ktery jsem jen pro nej na jeho vyzadani prave vygeneroval? Do HttpRequest musim predat otevreny deskriptor na tento soubor. To je v pohode, pokud vse probehne, jak ma. Pokud ale uzivatel zrusi request (treba tim, ze v prohlizeci zmackne stopku), tak tento soubor neni radne uzavren. Uzavren bude az za nejakou dobu, zrejme az skonci prislusne vlakno serveru. To mi neprijde jako idealni. Soubor potrebuju smazat pokud mozno ihned (aby nezaclanel), takze i kdyz pouziju tempfile s automatickym smazanim po uzavreni, tak nemam zajisteno, kdy bude smazan. A navic pred jeho odeslanim musim soubor otevreny pro zapis previnout na zacatek, aby z nej pak mohl FileWrapper nadelat fasirku. Cele mi to prijde jako lamani pres koleno.

Zkousel jsem i poslat nejaky signal, pokud v ServerHandleru dojde k nejake chybe, ale stejne ten soubor prijemce tohoto signalu nemuze uzavrit, protoze nelze (aspon jsem neprisel na to jak) signalem predat ten deskriptor, protoze ten se do ServerHandleru z FileWrapperu ani nedostane.
10.9.2010 11:57 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Django 1.2.2 uzavírá kritickou chybu
Co takhle ho smazat ještě před tím, než ho začneš posílat? :)
10.9.2010 13:32 michal
Rozbalit Rozbalit vše Re: Django 1.2.2 uzavírá kritickou chybu
Cize subor nechat otvorit, zmazat z FS, poslat obsah, pri zavreti suboru (po odoslani celeho suboru alebo len casti kvoli chybe na spojeni) sa uvolni miesto na disku.
10.9.2010 20:11 Jiri
Rozbalit Rozbalit vše Re: Django 1.2.2 uzavírá kritickou chybu
To funguje v Linuxu. Bohuzel to ale nefunguje vsude. Resenim je patch Djanga, aby pri chybe socketu zavrelo result response, pokud to jde, a vlastni Filewrapper, ktery soubor po zavreni smaze.
10.9.2010 20:17 Jiri
Rozbalit Rozbalit vše Re: Django 1.2.2 uzavírá kritickou chybu
Navic by to neresilo problem. Soubor by i tak zaclanel na disku prilis dlouho. Ja ho potreboval fyzicky smazat, jakmile dojde k chybe, ne nekdy pozdeji. I tak je blbe, ze view funkce musi dobehnout, i kdyz je socket zavreny uz behem jejiho behu.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.