Čeká nette svůj předchozí proces – session lock?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
neznamy_uzivatel
Člen | 115
+
0
-

iguana007 napsal(a):

Neni mozne, ze ti tam treba v jinem tabu bezel jiny request?
Pokud ano, tak by to byl ten duvod. Kdyz si totiz spustis jeden request, tak ten nasledujici treba v jinem tabu ceka, az se dokonci ten puvodni nez se zacne vubec zpracovavat.

Citace pochází z: https://forum.nette.org/…ani-aplikace

Ahoj,
chci se zeptat na výše uvedenou citaci. Je to pravda?
U mě je to viditelné při invalidování něčeho v cache. Běží-li cron, který asi 30s aktualizuje cache, je celá aplikace celou tu půlminutu mimo provoz.

Vytváří-li php/nette výstup pro jednoho uživatele, spuštění generování výstupu pro druhého návštěvníka čeká na kompletní dokončení výstupu pro uživatele č. 1?

Je-li na webu 10 lidí a vygenerování stránky trvá 300 ms, pak pokud všichni současně udělají refresh, tak ten, který bude poslední bude čekat na dokončení všech ostatních po jednom?

Předpokládám, že to dělají session, jak už jsem se tady dočetl.
Zajímalo by mě, z jakého důvodu tohle omezení existuje? Každý uživatel má přeci svou session, tam k ničemu „špatnému“ dojít nemůže.
Lze to nějak obejít?

Díky za objasnění :)

Editoval neznamy_uzivatel (22. 10. 2016 22:21)

CZechBoY
Člen | 3608
+
0
-

No session storage ti to zamkne jen pro konkrétní session – tzn. jeden uživatel bude čekat jen sám na sebe.
Samozřejmě pokud zamkneš nějakou sdílenou cache, kterou používáš na každé (nebo té pomalé) stránce, tak se samozřejmě zamkne provádění skriptu pro všechny uživatele, kteří v ten daný čas chtějí něco načíst z cache.

neznamy_uzivatel
Člen | 115
+
0
-

Bohužel, nečeká jen sám na sebe, ale na všechny..

Teď jsem to zkoušel ze tří samostatných zařízení a při sleep(10) ten poslední čeká nejméně 30 sec.