[python] mod_python - problém s vícenásobným spuštěním jednoho skriptu

Petr Messner petr.messner na gmail.com
Čtvrtek Leden 8 18:02:38 CET 2009


Ahoj,

webový prohlížeč se snaží být na servery hodný a neotevírat více jak
dvě spojení najednou. Možná z toho máš pocit, že se to nechová
paralelně. Zkus víc prohlížečů najednou (čti: použij wget).

Jinak pro začátek, mám pocit, že mod_python nebývá moc doporučovaným
způsobem tvoření webových aplikací, ale to je jedno, třeba tam, kde
pracuji, nad mod_python jede hodně věcí.

Taky může jít o nějakou magii v mod_python, do kterého zatím příliš
nevidím, ale jak sám píšeš, při přístupu z jiného počítače se to
neděje, takže tam bych chybu jako první nehledal.

PM

Dne 8. leden 2009 17:33 Koumes21 <koumes21 na gmail.com> napsal(a):
> Nazdar,
>
> používám Apache server 2.2.11, mod_python 3.3.1 a Python 2.5.4, což by
> měly být nejnovější verze. Všechno už mám nastavené, ke zveřejňování
> stránek používám mod_python.publisher. Nefunguje mi jen jedna věc - když
> mám nějakou stránku, které trvá delší dobu, než se načte (odešle), a
> chci ji zobrazit dvakrát, nejdříve se musí dokončit odesílání prvního
> dotazu a teprve potom se začne vyhodnocovat druhý. To je problém když
> chci udělat stránku, ze které si uživatelé budou moct stahovat soubory,
> a ty budou odesílány přes skript v Pythonu - pak by mohli stahovat v
> jednom okamžiku jen jeden soubor. Zarážející je, že to není tak docela
> problém nedostatku zdrojů - pokud otevřu druhou stránku v jiném
> prohlížeči, budou se obě stahovat současně. Navíc jsem to zkoušel jak na
> Windows (Vista) tak na Linuxovém serveru (Ubuntu 8.10). Velice úporně
> jsem se snažil něco o tomto problému najít na internetu, to co se
> nejvíce podobalo je tento dotaz:
> http://www.modpython.org/pipermail/mod_python/2008-September/025634.html
>
> Rozdíl s mojí situací je v tom, že já používám mod_python.publisher a ne
> svůj vlastní handler (což ovšem stejně nic nezmění), potom že nepoužívám
> Sessions, že místo prefork používám threaded MPM, a nakonec že řešení
> které bylo nabídnuto tázajícímu se v mém případě nefunguje.
>
> Doufám, že se najde někdo, kdo něco takového již řešil. Ještě přidám
> kód, který je potřeba k simulaci problému:
>
> def index(req):
>    import time
>    req.content_type="text/plain"
>    req.write("working...")
>    time.sleep(10)
>    req.write("\ndone")
>
> Předem děkuji za každou odpověď, která mi pomůže hnout se z místa.
>
> Koumes21
>
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>


Další informace o konferenci Python