Timeout, česky vypršení časového limitu, je předem daná hranice, jak dlouho se smí čekat na dokončení nějaké operace. Když se ji nepodaří stihnout, program čekání vzdá a ohlásí chybu. Není to porucha, ale záměrná pojistka – bez ní by se zaseknuté úlohy hromadily a server by nakonec přestal obsluhovat i ostatní.
Je to jako telefonát. Necháte to zvonit půl minuty a pak zavěsíte. Neznamená to, že druhá strana neexistuje, jen jste se rozhodli, že déle čekat nebudete. Server to dělá úplně stejně, jen si tu půlminutu určuje sám podle nastavení.
S jakými limity se na hostingu potkáte nejčastěji:
- Doba běhu skriptu – kolik sekund smí PHP skript počítat. Obvyklá hodnota je několik desítek sekund. Nejčastěji ji přetáhne rozsáhlý import produktů nebo generování velké sestavy.
- Chyba 504 (Gateway Timeout) – webový server se ptal aplikace a nedočkal se odpovědi. Návštěvník uvidí bílou stránku s číslem, podobně jako u jiných stavových kódů popsaných v hesle chyba 404.
- Limit pro nahrávání souboru – velké video nahrávané přes formulář v administraci často nestihne doputovat včas.
- Limit spojení – Váš web čeká na odpověď databáze nebo cizí služby, například platební brány, a ta mlčí.
Co s tím v praxi. Velké dávkové úlohy rozdělte na části, nebo je pusťte na pozadí přes cron, kde se na ně nikdo nedívá a limit prohlížeče je netlačí. Objemné soubory nenahrávejte formulářem, ale přes FTP nebo správce souborů – tam se přenos neřídí dobou běhu skriptu. A pokud timeout hlásí konkrétní doplněk pokaždé, hledejte příčinu v něm, protahování limitu jen odsune projev problému.
Timeout si nepleťte s latencí. Latence je běžná prodleva, než dorazí odpověď, a měří se v tisícinách sekundy. Timeout je až tvrdá hranice, po které se čekání ukončí. Když se timeouty opakují a příčinu nenajdete, podívejte se do chybového logu, kde bývá zapsané, co přesně se v tu chvíli dělo.