Skrip cron & CLI
Penjadwal pseudo-cron dan skrip baris perintah opsional untuk host tingkat lanjut.
TubePress menjalankan pekerjaan berulangnya — menghitung ulang peringkat, memantau pekerjaan transcode, mengimpor feed, memperbarui sitemap, dan lainnya — tanpa mengharuskan Anda mengonfigurasi crontab sistem. Halaman ini menjelaskan pseudo-cron, heartbeat yang menjaganya tetap berjalan, dan skrip command-line opsional untuk host tingkat lanjut.
Pseudo-cron
CronManager adalah penjadwal bergaya WordPress. Tugas-tugas didaftarkan dengan nama dan interval, dan CronManager::run() dipanggil sekali di akhir setiap render halaman. Setiap tugas hanya berjalan jika cukup waktu telah berlalu sejak terakhir kali berjalan.
// Register a task (typically from a plugin's boot() method)
CronManager::register('promo_refresh', 600, function () {
Promo::rebuildCache(); // runs at most every 10 minutes
});Dirancang agar aman di host mana pun:
- Penguncian atomik.
UPDATEbersyarat pada tabelsettingsmengklaim setiap eksekusi, sehingga dua permintaan bersamaan tidak akan pernah menjalankan tugas yang sama dua kali. - Timestamp persisten. Waktu terakhir dijalankan disimpan di
settings(denganautoload = 0), sehingga jadwal tetap ada setelah restart dan crash — pemuatan halaman berikutnya langsung melanjutkan dari tempat terakhir berhenti. - Mundur otomatis. Tugas yang terus gagal akan dicoba ulang dengan interval yang bertumbuh secara eksponensial (dibatasi satu jam) hingga pulih, dan penghitung kegagalan direset saat berhasil.
Heartbeat — tanpa crontab
Pseudo-cron hanya aktif saat halaman sedang dirender, yang menjadi masalah bagi situs baru atau situs dengan lalu lintas rendah. TubePress mengatasi ini dengan heartbeat yang dikelola sendiri: proses CLI ringan (bin/heartbeat.php) yang mem-ping halaman beranda Anda setiap sekitar 50 detik sehingga penjadwal tetap berjalan bahkan tanpa satu pun pengunjung.
- Dilindungi PID dan secara otomatis di-spawn ulang oleh permintaan web mana pun jika berhenti — Anda tidak perlu memulai atau mengawasinya.
- Matikan saat runtime dengan mengatur
heartbeat_enabledke0.
crontab -e, tanpa supervisor, tanpa layanan tambahan untuk dikelola.Apa yang berjalan di penjadwal
Core dan plugin bawaan mendaftarkan tugas-tugasnya sendiri — misalnya penghitungan ulang skor CTR, pengiriman dan percobaan ulang pekerjaan transcode, impor feed, pemrosesan katalog, pekerjaan terjemahan AI, dan pembaruan sitemap. Saat Anda mengaktifkan subsistem, tugas-tugas tersebut ditambahkan secara otomatis; tidak ada yang perlu dikonfigurasi.
Skrip CLI opsional
Untuk operasi berat atau satu kali, beberapa skrip command-line tersedia di bin/ dan dapat dijalankan secara manual atau dari crontab sungguhan pada host yang mendukungnya. Skrip-skrip ini mencakup worker yang berjalan lama (untuk unduhan katalog dan penghapusan massal) serta pembantu pemeliharaan. Jalankan menggunakan PHP CLI sistem dari root proyek:
php bin/heartbeat.php # run the heartbeat in the foreground
php bin/catalogue-worker.php # process catalogue download jobsMenggunakan crontab sungguhan (tingkat lanjut)
Jika Anda lebih suka menggerakkan penjadwal dari sistem operasi — misalnya pada situs dengan lalu lintas tinggi di mana Anda ingin waktu yang ketat dan dapat diprediksi — Anda dapat menonaktifkan heartbeat dan menambahkan satu entri cron sistem yang meminta halaman beranda Anda (atau menjalankan heartbeat sekali) pada interval singkat. Sebagian besar operator tidak pernah membutuhkan ini; heartbeat bawaan sudah cukup.
Langkah berikutnya
Masih kesulitan?
Buka tiket dari dasbor Anda dan tim kami akan membantu Anda.