Cara Setting Task Scheduler (Cron Job) di Laravel

Butuh menjalankan tugas otomatis โ€” mengirim email pengingat, membersihkan data lama, atau mem-publish artikel terjadwal? Laravel punya Task Scheduler yang membuat penjadwalan jadi...

Cara Setting Task Scheduler (Cron Job) di Laravel

Butuh menjalankan tugas otomatis โ€” mengirim email pengingat, membersihkan data lama, atau mem-publish artikel terjadwal? Laravel punya Task Scheduler yang membuat penjadwalan jadi rapi dalam satu file, tanpa membuat banyak cron job terpisah di server. Artikel ini menjelaskan cara memakainya dari nol.

Konsep: Satu Cron untuk Semua

Alih-alih menambah banyak entri cron di server, Laravel cukup butuh satu cron yang memanggil schedule:run tiap menit. Sisanya diatur di dalam kode Laravel.

Langkah 1: Definisikan Jadwal

Buka app/Console/Kernel.php (Laravel 10 ke bawah) dan tulis jadwal di method schedule():

protected function schedule(Schedule $schedule)
{
    // contoh: bersihkan log tiap hari jam 1 pagi
    $schedule->command('log:clear')->dailyAt('01:00');

    // contoh: jalankan closure tiap jam
    $schedule->call(function () {
        // logika Anda di sini
    })->hourly();
}

Beberapa frekuensi yang sering dipakai: ->everyMinute(), ->hourly(), ->daily(), ->dailyAt('13:00'), ->weekly(), ->cron('0 */2 * * *') untuk pola kustom.

Langkah 2: Uji di Lokal

Jalankan manual untuk memastikan jadwal Anda benar:

php artisan schedule:run

Perintah ini akan menjalankan semua task yang waktunya sudah tiba. Untuk melihat daftar jadwal terdaftar:

php artisan schedule:list

Langkah 3: Pasang Cron di Server

Agar berjalan otomatis, tambahkan satu cron job di server. Buka crontab:

crontab -e

Lalu tambahkan baris berikut (sesuaikan path project):

* * * * * cd /var/www/laravel_app && php artisan schedule:run >> /dev/null 2>&1

Setting Cron di cPanel

Di shared hosting cPanel, buka menu Cron Jobs, pilih interval "Once per minute", lalu isi command dengan path PHP dan project Anda:

/usr/local/bin/php /home/user/laravel_app/artisan schedule:run >> /dev/null 2>&1

Contoh Nyata: Auto-Publish Konten Terjadwal

Task Scheduler cocok untuk mem-publish artikel yang sudah disiapkan sebagai draft pada tanggal tertentu. Misalnya, sebuah command yang mengubah status artikel menjadi publish saat waktunya tiba, dijalankan ->daily(). Dengan pola ini, Anda bisa menyiapkan konten sebulan penuh dan membiarkannya terbit otomatis.

Kesimpulan

Task Scheduler membuat penjadwalan di Laravel jadi terpusat dan mudah dirawat: definisikan jadwal di kode, lalu pasang satu cron schedule:run di server. Setelah itu, tugas apa pun โ€” dari kirim email sampai auto-publish konten โ€” bisa berjalan otomatis. Untuk deployment servernya, lihat panduan kami tentang cara deploy Laravel ke VPS Ubuntu dengan Nginx.

task scheduler laravel cron job laravel schedule run laravel laravel penjadwalan tugas cron laravel cpanel
Bagikan artikel
Kembali

Komentar (0)

Punya pertanyaan atau tambahan? Tulis di bawah โ€” tak perlu login.

Membalas komentarโ€ฆ batal

Belum ada komentar. Jadilah yang pertama!

๐Ÿš€ Partner Recommendation

Butuh Source Code & Aplikasi Premium?

Download aplikasi Laravel, POS, Sekolah, Klinik, ERP, dan source code siap pakai di GudangCode.

GudangCode
  • โœ” Source Code Premium
  • โœ” Sistem Siap Pakai
  • โœ” Lifetime Update
  • โœ” Membership Lifetime
  • โœ” Update Aplikasi Harian
Daftar Membership โ†’