Stahování větších souborů pozastaví všechny další requesty

MedaKeR
Člen | 14
+
0
-

Dobrý den, pro stažení soubru z webu používám (zjednodušené)

    function actionDownload(string $file) : void
    {
        $this->getSession()->close();
        $this->sendResponse(new FileResponse($file));
    }

a pozoruji problém, že při stahování souboru až do ukončení stahování se nezpracovávají jiné požadavky (nelze tedy zavolat stažení dalšího souboru, nelze otevřít jinou stránku atd.). nejlépe je to vidět při stahování většího souboru (řádově GB).

Čím by to mohlo být způsbeno, nebo jak to vyřešit, aby během stahování bylo možné aplikaci používat nadále?

Marek Bartoš
Nette Blogger | 1274
+
0
-

Tady je obvyklým viníkem blokující session. Co jiného tě může blokovat je těžké říct.
Zkusil bych si spustit profiler (třeba php-spx) a dohledat na co čekající požadavek čekal

MedaKeR
Člen | 14
+
0
-

Díky, jak bude prostor vyzkouším a ozvu se…

Tady je obvyklým viníkem blokující session. Co jiného tě může blokovat je těžké říct.

Jak je možné že by se čekalo na session když ji před sendResponse uzavřu?

Marek Bartoš
Nette Blogger | 1274
+
+1
-

Jak je možné že by se čekalo na session když ji před sendResponse uzavřu?

Není (nebo by přinejmenším nemělo). To píšu právě proto, že obvyklý viník to v tomhle případě nebude a bude to chtít hlubší analýzu

mystik
Člen | 312
+
0
-

Mohl by to byt nejaky neuvolneny zamek na souboru. A pokud to testujes na localhostu zkontroloval bych jeste nastaveni webserveru a php-fpm kolik podporuji soucasnych pozadavku – uz se mi stalo z kvuli chybe konfigurace php-fpm melo jen jednu instanci.