Máte 3 možnosti. Moje doporučení:Pokud můžete, použijte cron, pokud musíte, použijte démona a jako poslední možnost použijte démona.
(1) cron (jak je uvedeno v komentářích)
cron je plánovač pro linuxové systémy, který na vašem systému spustí úlohu příkazového řádku. Přihlásíte se k serveru přes ssh, zadejte crontab -e
a přidejte řádek jako tento:
4 5 * * * php /path/to/my/script.php
Tím by se skript spustil každý den v 5:04.
<?php
// /path/to/my/script.php
// Do something
Některé hostingové služby umožňují zadávání úloh cronu pomocí GUI. Existují také externí cron služby, které za vás zavolají URL v určitých časech.
(2) démon
Toto je nejpokročilejší možnost a také nejméně spolehlivá:Spustíte skript příkazového řádku, který obsahuje nekonečnou smyčku. Skript pak pravidelně kontroluje stav a reaguje na něj. Protože je pravděpodobné, že se po měsících běhu zhroutí, musíte mít druhý skript, abyste jej restartovali v případě, že k němu dojde. Je to hodně práce, ale je to nejflexibilnější přístup.
<?php
while (1) {
// fetch $last_exec_timestamp from database
if ($last_exec_timestamp < time() + 86400) {
// set last_exec_timestamp to now in database
// do something
}
sleep(5);
}
3. řízeno uživatelem
Pokud máte na svém webu slušnou návštěvnost, můžete jednoduše zahrnout úlohu toto do zápatí stránky, když již není k dispozici žádný výstup. Ujistěte se, že je tento kód rychlý, jinak na něj bude čekat nešťastný uživatel.
<?php
// fetch $last_exec_timestamp from database
if ($last_exec_timestamp < time() + 86400) {
// set last_exec_timestamp to now in database
// do something
}
Existují také efektnější přístupy „řízené uživatelem“, které jsem osobně netestoval v jiném přetečení zásobníku otázka .