Pilih paket

Cron job: tugas terjadwal di Enhance

Cara menjadwalkan skrip PHP atau alamat web agar berjalan otomatis dari Enhance, dengan contoh untuk WordPress dan solusi jika tidak berjalan.

  • Diperbarui
panduan · lanjutan
Langkah
16
Waktu baca
5mnt
Bagian
4
Mulai panduan

Cron job adalah perintah yang dijalankan server secara otomatis, pada waktu yang Anda tentukan: setiap 15 menit, setiap malam, atau seminggu sekali. Cron job dipakai oleh toko online, plugin newsletter, sinkronisasi stok, dan WordPress untuk artikel terjadwal. Cron job sudah termasuk di semua paket hosting web, bersama file manager dan FTP terenkripsi.

Yang akan Anda capai

  • menambah, mengubah, dan menghapus cron job di Enhance;
  • menjalankan script PHP dengan versi PHP yang sama seperti website;
  • menyimpan hasil eksekusi di sebuah file, untuk melihat apakah script menghasilkan error.

Sebelum memulai

  • Paket kami tidak memiliki akses SSH, tetapi cron job tetap berfungsi. Server menjalankannya di lingkungan terisolasi milik website, dengan versi PHP yang dipilih untuk website tersebut.
  • Path ditulis mulai dari $HOME, yaitu direktori website Anda. Website utama ada di $HOME/public_html, jadi script di sana ditulis $HOME/public_html/cron.php. Server otomatis mengganti $HOME dengan path lengkap.
  • Versi PHP website (8.2, 8.3, atau 8.4) bisa dilihat di “Developer tools”, pada “PHP” (lihat Versi PHP dan pengaturan PHP).
  • Jam yang dipakai adalah waktu Rumania, karena server diatur ke zona waktu Bukares: 5 jam lebih lambat dari WIB (4 jam saat musim panas Eropa, dari Minggu terakhir Maret hingga Minggu terakhir Oktober). Contohnya, 03.00 waktu server sama dengan 08.00 WIB.
  • Nama menu dalam panduan ini sesuai dengan tampilan Enhance berbahasa Inggris. Jika Enhance terbuka dalam bahasa lain, Anda bisa beralih ke bahasa Inggris di kanan atas: foto atau inisial Anda » “My account” » “Language”.

Langkah-langkah

  1. Masuk ke Enhance di https://server.nbt-host.com. Di menu sebelah kiri, klik “Websites”, lalu pilih website Anda.
  2. Buka tab “Developer tools”. Jika tidak terlihat di deretan tab, tab ini ada di menu “Advanced”, di ujung deretan.
  3. Buka “Cron jobs” dan klik “Add cron job”. Jika belum ada cron job sama sekali, tombolnya bernama “Add”.
  4. Di “Cron type”, pilih:
    • “Run command”, untuk menjalankan perintah atau script. Tulis perintahnya di “Command”;
    • “Request URL”, untuk membuka alamat web. Tulis alamatnya di “Request URL”, dengan http:// atau https:// di depannya. Enhance memanggilnya sendiri, tanpa menyimpan hasil apa pun.
  5. Di “Interval”, pilih seberapa sering dijalankan: “Every minute”, “Every 15 minutes”, “Every hour”, “Every day” (tengah malam), “Every week” (Senin, tengah malam), atau “Every month” (tanggal 1, tengah malam). Untuk waktu lain, pilih “Custom” dan isi di bawahnya “Minute”, “Hour”, “Day of month”, “Month”, dan “Weekday”. Masing-masing punya daftar pilihan siap pakai dan kolom untuk menulis nilainya sendiri. Misalnya untuk pukul 03.00 dini hari, isi 0 di “Minute” dan 3 di “Hour”.
  6. Klik “Add”. Cron job muncul di daftar, beserta perintah dan intervalnya.
  7. Untuk mengubahnya, buka menu di barisnya, klik “Edit”, lakukan perubahan, lalu klik “Save”. Untuk menghapusnya, pilih “Delete” dari menu yang sama dan konfirmasi.

Contoh perintah

Pada contoh di bawah, ganti path dan alamatnya dengan yang sebenarnya.

Script PHP, dijalankan dengan jenis “Run command”:

php $HOME/public_html/cron.php

Perintah php menjalankan versi PHP yang sama seperti website, jadi Anda tidak perlu menulis nomor versi di mana pun. Jika versi PHP website diganti, cron job otomatis memakai versi yang baru.

Alamat web, untuk plugin yang memberi Anda link cron: pilih jenis “Request URL” dan tempel link-nya, misalnya https://domeniul-tau.ro/cale/catre/cron.

WordPress, dengan cron sungguhan sebagai pengganti cron yang dipicu pengunjung:

Periksa dulu daftar “Cron jobs”: jika sudah ada baris dengan wp-cron.php, website sudah memakai cron sungguhan dan Anda tidak perlu menambah lagi. Jika belum:

  1. Buka wp-config.php dari tab “Files” dan, di atas baris yang diawali /* That's all, stop editing!, tambahkan:
    define( 'DISABLE_WP_CRON', true );
  2. Tambahkan cron job dengan jenis “Request URL”, interval “Every 15 minutes”, dan alamat:
    https://domeniul-tau.ro/wp-cron.php?doing_wp_cron

Jika website punya banyak tugas terjadwal, misalnya toko online dengan banyak pesanan, pilih “Custom” dan tulis */10 di “Minute”: cron akan berjalan setiap 10 menit.

Hasil eksekusi

Enhance tidak punya pengaturan untuk mengirim email berisi hasil setiap eksekusi. Untuk melihat apa yang dilakukan sebuah perintah, simpan hasilnya di file: tambahkan di akhir perintah >> $HOME/cron.log 2>&1. File cron.log muncul di tab “Files”, di samping public_html. Kosongkan file ini sesekali, karena jika tidak, ukurannya terus bertambah dan memakan ruang disk.

Setelah script berjalan dengan benar, ganti bagian akhirnya dengan > /dev/null 2>&1: hasilnya tidak lagi disimpan di mana pun.

Beberapa aturan yang baik

  • Jalankan tugas hanya sesering yang Anda butuhkan. Untuk sebagian besar website, setiap 15 menit sudah cukup. Eksekusi setiap menit hanya membebani server tanpa manfaat.
  • Beri jeda yang cukup di antara eksekusi, agar yang satu selesai sebelum yang berikutnya dimulai.
  • Tulis path lengkap, mulai dari $HOME/..., bukan path relatif.
  • Jangan gunakan karakter % di perintah: bagi cron, karakter ini punya arti khusus. Jika Anda membutuhkannya, tulis \%.
  • Berhati-hatilah dengan perintah yang menghapus file (rm): dengan path yang salah, Anda bisa menghapus seluruh website.
  • Biarkan pengaturan “Allow editing of cron from website container” tetap nonaktif. Jika diaktifkan, script di website bisa menambahkan cron job sendiri, dan program jahat untuk WordPress justru melakukan hal itu.

Jika ada kendala

  1. Cron job sama sekali tidak berjalan. Periksa jamnya (server memakai waktu Rumania) dan path-nya, yang harus diawali $HOME/. Untuk sementara, tambahkan >> $HOME/cron.log 2>&1 di akhir perintah dan buka cron.log setelah eksekusi berikutnya: error-nya akan tercatat di sana.
  2. Di cron.log tertulis “Permission denied”. Kemungkinan Anda hanya menulis path script. Tambahkan di depannya program yang menjalankannya, misalnya php $HOME/public_html/cron.php.
  3. Script berjalan dari browser, tetapi tidak dari cron. Beberapa script mencari file mulai dari folder tempat script itu berada. Masuk dulu ke folder tersebut: cd $HOME/public_html && php cron.php.
  4. cron.log terlalu besar. Kosongkan file tersebut atau ganti bagian akhir perintah dengan > /dev/null 2>&1.
  5. Website melambat pada jam-jam tertentu. Kemungkinan dua tugas berat dimulai bersamaan atau dijalankan terlalu sering. Jadwalkan pada jam yang berbeda, di malam hari, dan jalankan lebih jarang.
Dukungan

Mentok? Kita selesaikan bersama.

Tulis langkah mana yang tidak berhasil dan, jika bisa, kirimkan tangkapan layar. Kami akan membalas pada jam kerja.

Telepon dan WhatsApp+40 775 396 021
Jam kerjaSenin–Jumat, 09.00–18.00 waktu Rumania (14.00–23.00 WIB; saat musim panas Eropa 13.00–22.00 WIB)

Jangan pernah mengirimkan kata sandi kepada kami lewat WhatsApp atau email. Informasi apa yang membantu kami menyelesaikan masalah sekaligus: cara meminta bantuan.