Jika pengguna mengunjungi situs dan kunjungannya memicu tugas cron yang cukup intensif, kecepatan memuat halaman akan lebih lambat baginya, bukan? Seperti yang saya mengerti halaman tidak menunggu pekerjaan cron untuk dieksekusi sebelum memuat, tetapi karena pekerjaan cron akan berjalan secara paralel, mungkin masih terjadi bahwa halaman memuat lebih lambat karena server sibuk kan?
8
Jawaban:
Jawaban singkat - Tidak . Setiap permintaan halaman menginisialisasi antrian yang dijadwalkan. Ini hanya permintaan inisialisasi. Permintaan Wp-cron adalah permintaan mandiri.
Namun - Jika acara cron tidak berfungsi dengan baik (memiliki kueri 1000 db misalnya atau meminta sumber daya yang sangat lama merespons), atau keduanya, atau menjadwalkan ulang acara cron untuk setiap permintaan ... sama seperti permintaan http lain akan memakan sumber daya, kinerja CPU, memori, dll ... jika memakan sumber daya yang cukup, halaman Anda akan menjadi lebih lambat.
sumber
Jawaban singkatnya sebenarnya ya , dalam banyak kasus.
Pertama, pada sebagian besar pengaturan, menelurkan tugas cron menimbulkan penundaan 1 detik pada pemuatan halaman, karena ini dilakukan melalui permintaan HTTP loopback dengan waktu tunggu 1 detik - lihat https://wordpress.org/support/topic/save -a-full-second-on-cron-eksekusi / .
Kedua, pekerjaan spawned sekarang akan bersaing dengan pemuatan halaman untuk akses basis data (serta sumber daya lainnya). Beberapa proses dapat membaca database secara bersamaan; namun, setiap kali suatu proses menulis ke database, secara default terkunci untuk mencegah akses tulis atau baca secara simultan oleh proses lain - lihat /programming/1005206/does-sqlite-lock-the-database -file-on-reads # answer-1005218 . Dampak dari ini tergantung seberapa kompleks pembaruan basis data pekerjaan cron dan berapa lama basis data itu benar-benar dikunci, dan mungkin tidak signifikan. Tentu saja, itu juga akan menjadi masalah jika pekerjaan cron sedang berjalan ketika halaman diminta, tetapi memiliki pekerjaan cron menelurkan jaminan pemuatan halaman mereka akan memengaruhi setidaknya pemuatan halaman itu.
Jika server / hosting Anda mengizinkan, Anda disarankan untuk mengatur tugas cron terjadwal untuk dijalankan setiap beberapa jam, dengan perintah
dan nonaktifkan pemijahan cron pada pemuatan halaman dengan entri berikut di
wp-config.php
:sumber
private
metode sepertiWP_Http::_dispatch_request
yang sekarang tidak pernah dipanggil.)