Pokud Váš hosting limituje počet cron úloh např. na 5, může to být ve většině případů nedostatečné (OpenServis hosting počet cron úloh nelimituje, takže u nás toto nebudete muset řešit), ukážeme si jak tento limit lehce obejít, stačí základní znalost PHP/FTP, případně můžete oslovit Vašeho vývojáře.
Řešením je více cronu sloučit do méně souborů, což samozřejmě neznamená, že budete muset něco složitě programovat, to vůbec ne.
Na FTP si vytvoříme soubor např. crony1.php a do toho vložíme následující obsah – místo XXX zadáte Vaše URL adresy.
Tento cron https://domain.tld/crony1.php (domain.tld vyměňte za název Vaší domény) poté nastavíte na Vašem webhostingu a tím zajistíte, že crony1.php budou spouštět více cronů a obejdete tedy tento limit na počet cronů 🙂
<?php
$urls = [
‚XXX‘,
‚XXX‘,
‚XXX‘,
‚XXX‘,
‚XXX‘,
‚XXX‘,
];
foreach($urls as $url){
if ($url !=’XXX‘){
file_get_contents($url);
}
}
Samozřejmě tam můžete poté ztroskotat na dalších limitech jako je max_execution_time, ale to už zase záleží na tom, jak Vaše crony jsou náročné, respektive jaký máte hosting a jak jsou optimalizované zmíněné crony.
Ve většině případů toto řešení je spolehlivé a sami ho používáme u zákazníků už roky, kteří hostují u jiných hostingů a z „různých“ důvodů nechtějí přejít k nám na hosting 🙂
Toto řešení se hodí také v případě, že chcete více cronů sloučit i pro Vaši přehlednost. Například pokud máte naše balíkové moduly (Balíkovna, Balík na poštu, Zásilkovna apod.), které mají každý vlastní cron, tak je zbytečné ho zadávat každý zvlášť, ale můžete je sloučit tímto způsobem. (Na funkci to nemá vliv)
Pokud byste to nechtěli řešit takto, můžete využít jiná řešení jako je modul cronjobs, či externí crony, ale ani jedno toto nedoporučujeme, již jsme o tom psali v jiném blog postu.
