Stahování větších souborů pozastaví všechny další requesty
- MedaKeR
- Člen | 14
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 | 1260
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
- Marek Bartoš
- Nette Blogger | 1260
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