Tutorial, WordPress

WordPress: Mengganti WP-Cron dengan Real Cron Job

Beberapa bulan yang lalu saya memutuskan untuk mengganti WP-Cron dengan Real Cron Job, dipicu oleh masalah pemakaian CPU dan I/O tinggi yang membuat website lambat diakses dan kadang malah jatuh. Meskipun sudah memiliki informasi cukup, namun untuk memutuskan benar-benar mengerjakannya memerlukan waktu menepis keraguan yang cukup lama.

Wp-Cron bertugas menjalankan pekerjaan terjadwal seperti scheduled post dan preload WP Super Cache. Setiap kali ada pengunjung, wp-cron mengecek pekerjaan yang harus dijalankan. Namun pekerjaan terjadwal bisa terlewat jika pengunjung sepi. Di lain pihak jika tak terjadwal baik, cron bisa memicu banyak proses simultan yang menyedot sumberdaya server.

Persoalan pertama yang saya hadapi waktu itu adalah ada enam instalasi WordPress, satu di domain utama dan lima di subfolder. Persoalan kedua adalah menentukan interval waktu real cron job-nya untuk setiap instalasi. Ketiga adalah pengaruhnya pada preload WP Super Cache.

Untuk mengurangi beban server akhirnya saya hilangkan dua folder (wisata dan petawisata) untuk digabung ke domain utama. Peniadaan Google Map digantikan dengan data GPS dan Waze (Andorid dan iOS) juga membantu meringankan kerja server. Untuk menetapkan interval cron saya lakukan dengan cara coba salah.

Berbeda dengan WP-Cron yang tak bisa dikontrol, real atau Linux cron jobs bisa dikontrol oleh user sehingga menjamin dieksekusinya pekerjaan terjadwal. Untuk situs dengan banyak pengunjung, Linux cron job membantu mengurangi kemungkinan website jatuh (down) dengan menurunkan bandwidth pada server, karena memakai lebih sedikit sumberdaya server.

Untuk Mengganti WP-Cron dengan Real Cron Job, lakukan langkah sebagai berikut:

Non-aktifkan wp-cron.php

  1. Login ke cPanel. Buka wp-config.php di folder instalasi WordPress
  2. Salin kode di bawah ini dan letakkan di baris setelah define('AUTH_KEY' atau di mana saja setelah <?php
    define('DISABLE_WP_CRON', true);
  3. Save, tutup wp-config.php

Membuat Linux / Real Cron Job

Ikuti langkah berikut ini jika Anda hanya memiliki satu instalasi WordPress, tanpa subdomain, tanpa subfolder.
  1. Pada cPanel, gulir kursor ke bawah ke bagian "Advance" dan klik ikon "Cron Jobs"
  2. Jika memakai preload WP Super Cache dengan lebih dari seratus tulisan, cron bisa disetel setiap setengah jam dengan memilih "Twice Per Hour(0,30 * * * *)" pada menu drop down "Common Settings "
    Bisa juga setiap jam dengan memilih "Once Per Hour(0 * * * *)".
    Preload berhenti setiap 100 tulisan dan mulai lagi pada cron berikutnya, jadi semakin panjang interval cron akan semakin lama pula preload selesai.
    Tidak dianjurkan untuk setting cron dengan interval kurang dari 15 menit.
  3. Pada isian di bawah "Command:", salin dan letakkan di sana kode berikut:
    wget -q -O - https://websitemu.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    Ganti "websitemu.com" dengan nama domain Anda.
    Klik tombol "Add New Cron Job". Selesai.

Mengatur Interval Linux Cron Jobs

Jika ada lebih dari satu instalasi Wordpress maka harus dilakukan pengaturan agar cron tidak berjalan dalam waktu bersamaan yang menyedot sumberdaya server. Lakukan langkah berikut ini:
  1. Bagi 60 (menit) dengan jumlah instalasi WP. Jika ada 4 maka 60/4 = 15. Ini adalah angka interval pada isian menit.
  2. Untuk instalasi WP pertama ketik: 0 (angka nol) pada Minute, * (tanda bintang) pada Hour, * pada Day, * pada Month dan * pada Weekday.
    Pada "Command:"
    wget -q -O - https://websitemu.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    Klik "Add New Cron Job"

  3. Untuk WP kedua, subfolder blog misalnya (https://websitemu.com/blog/) gunakan: 15 * * * *
    Dengan "Command:"
    wget -q -O - https://websitemu.com/blog/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    Klik "Add New Cron Job"
  4. Untuk WP ketiga, subfolder en misalnya (https://websitemu.com/en/) gunakan: 30 * * * *
    Pada "Command:"
    wget -q -O - https://websitemu.com/en/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    Klik "Add New Cron Job"
  5. Untuk WP keempat, subfolder shop misalnya (https://websitemu.com/shop/) gunakan: 45 * * * *
    Pada "Command:"
    wget -q -O - https://websitemu.com/shop/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    Klik "Add New Cron Job"

Dengan cara ini masing-masing cron akan berjalan setiap jam dengan interval 15 menit yang akan mencegah tumpang tindih pada cron dan akan meringankan pemakaian sumberdaya server.


Bagikan ke:
Facebook, Twitter, WhatsApp, Telegram, Email. Print!.

, seorang pejalan musiman dan penyuka sejarah. Penduduk Jakarta yang sedang tinggal di Cikarang Utara. Traktir BA secangkir kopi. Secangkir saja ya! Oktober 27, 2017.