Anda memiliki 3 pilihan. Rekomendasi saya:Gunakan cron jika Anda bisa, pengguna didorong jika Anda harus, dan daemon sebagai pilihan terakhir.
(1) cron (seperti yang disebutkan dalam komentar)
cron adalah penjadwal untuk sistem linux yang akan menjalankan pekerjaan baris perintah di sistem Anda. Anda masuk ke server Anda melalui ssh, ketik crontab -e
, dan tambahkan baris seperti ini:
4 5 * * * php /path/to/my/script.php
Ini akan menjalankan skrip pada pukul 5:04 pagi setiap hari.
<?php
// /path/to/my/script.php
// Do something
Beberapa layanan hosting memungkinkan memasukkan pekerjaan cron dengan GUI. Ada juga layanan cron eksternal, yang akan memanggil URL untuk Anda pada waktu tertentu.
(2) daemon
Ini adalah opsi yang paling canggih dan juga yang paling tidak dapat diandalkan:Anda menjalankan skrip baris perintah yang berisi loop tak terbatas. Skrip kemudian secara berkala memeriksa status dan meresponsnya. Karena kemungkinan akan macet setelah berbulan-bulan berjalan, Anda harus memiliki skrip kedua untuk memulai ulang jika itu terjadi. Ini banyak pekerjaan, tetapi ini adalah pendekatan yang paling fleksibel.
<?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. didorong oleh pengguna
Jika Anda memiliki jumlah lalu lintas yang layak di situs Anda, Anda cukup memasukkan pekerjaan ini di footer halaman Anda, ketika tidak ada lagi keluaran. Pastikan kode ini cepat, atau pengguna yang tidak beruntung akan menunggunya.
<?php
// fetch $last_exec_timestamp from database
if ($last_exec_timestamp < time() + 86400) {
// set last_exec_timestamp to now in database
// do something
}
Ada juga pendekatan "didorong pengguna" yang lebih mewah yang belum saya uji secara pribadi di stack overflow lainnya pertanyaan .