Du har 3 muligheder. Min anbefaling:Brug cron, hvis du kan, brugerdrevet, hvis du skal, og dæmon som sidste udvej.
(1) cron (som nævnt i kommentarer)
cron er en skemalægger til linux-systemer, der vil køre et kommandolinjejob på dit system. Du logger ind på din server over ssh, skriv crontab -e
, og tilføj en linje som denne:
4 5 * * * php /path/to/my/script.php
Dette ville køre scriptet kl. 5:04 hver dag.
<?php
// /path/to/my/script.php
// Do something
Nogle hostingtjenester tillader indtastning af cron-job med en GUI. Der er også eksterne cron-tjenester, der kalder en URL til dig på bestemte tidspunkter.
(2) dæmon
Dette er den mest avancerede mulighed og også den mindst pålidelige:Du kører et kommandolinjescript, der indeholder en uendelig løkke. Scriptet kontrollerer derefter periodisk tilstand og reagerer på det. Fordi det sandsynligvis går ned efter måneders drift, skal du have et andet script for at genstarte det, hvis det gør det. Dette er meget arbejde, men det er den mest fleksible tilgang.
<?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. brugerdrevet
Hvis du har en anstændig mængde trafik på dit websted, kan du blot inkludere en opgave dette i din sidefod, når der ikke er mere output. Sørg for, at denne kode er hurtig, ellers venter en uheldig bruger på den.
<?php
// fetch $last_exec_timestamp from database
if ($last_exec_timestamp < time() + 86400) {
// set last_exec_timestamp to now in database
// do something
}
Der er også mere fancy tilgange til "brugerdrevet", som jeg ikke personligt har testet i et andet stak-overløb spørgsmål .