Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Laravel 5
Code

Task Scheduling di Laravel

by
Difficulty:BeginnerLength:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Sap (you can also view the original English article)

Dalam artikel ini, kita akan mendalami salah satu fitur menarik dari Laravel web framework-task scheduling. Sepanjang artikel ini, kita akan melihat bagaimana Laravel memungkinkan Anda untuk mengelola tugas-tugas terjadwal dalam aplikasi Anda. Selain itu, kami juga akan berakhir membuat kostum tugas terjadwal kami sendiri untuk keperluan demonstrasi.

Laravel framework memungkinkan Anda untuk mengatur scheduled tasks sehingga Anda tidak perlu khawatir tentang pengaturan mereka pada tingkat sistem. Anda dapat menyingkirkan complex cron syntax tersebut sementara menetapkan tugas terjadwal sejak Laravel memungkinkan Anda untuk menentukan mereka dalam cara yang user-friendly.

Kita akan mulai artikel dengan bagaimana Anda gunakan untuk menyiapkan tradisional cron jobs, dan berikut bahwa kita akan menjelajahi cara Laravel untuk mencapainya. Di pertengahan artikel, kita akan mencobanya dengan membuat beberapa custom scheduled tasks yang harus memberikan wawasan langsung tentang subject.

Cara sederhana Pengaturan Scheduled Task

Dalam pengembangan aplikasi sehari-hari Anda, Anda sering menghadapi situasi yang mengharuskan Anda untuk menjalankan scripts tertentu atau perintah secara berkala. Jika Anda bekerja dengan sistem * nix, Anda akan mungkin mengetahui bahwa cron jobs menangani perintah ini. Di sisi lain, mereka dikenal sebagai tugas-tugas yang dijadwalkan pada sistem berbasis Windows.

Mari kita lihat sekilas contoh sederhana * nix berbasis cron job.

Cukup sederhana-file statistics.sh yang berjalan setiap lima menit!

Meskipun itu adalah kasus penggunaan yang sangat sederhana, Anda sering menemukan diri Anda dalam situasi yang membutuhkan untuk menerapkan penggunaan kasus yang lebih kompleks. Di sisi lain, sistem yang kompleks membutuhkan Anda untuk menentukan beberapa cron jobs yang dijalankan pada interval waktu yang berbeda.

Mari kita lihat beberapa tugas aplikasi web yang kompleks telah tampil secara berkala di back-end.

  • Bersihkan data yang tidak perlu dari database back-end.
  • Memperbarui indeks caching front-end untuk tetap up-to-date.
  • Menghitung statistik situs.
  • Kirim email.
  • Back up elemen situs yang berbeda.
  • Menghasilkan laporan.
  • Dan banyak lagi.

Jadi, seperti yang Anda lihat, ada banyak hal di luar sana menunggu untuk dijalankan secara berkala dan juga pada interval waktu yang berbeda. Jika Anda seorang system admin berpengalaman, itu mudah untuk Anda untuk menentukan cron jobs untuk semua tugas ini, tapi kadang-kadang kita sebagai developers berharap bahwa ada cara yang lebih mudah.

Untungnya, Laravel datang dengan built-in Task Scheduling API yang memungkinkan Anda untuk menentukan tugas-tugas yang dijadwalkan tidak seperti sebelumnya. Dan ya, Bagian berikutnya adalah semua tentang itu-dasar-dasar Laravel task scheduling.

Cara Laravel

Dalam sesi sebelumnya, kami pergi melalui cara sederhana pengaturan cron jobs. Dalam bagian ini, kita akan mendalami melalui spesifik Laravel dalam konteks Task Scheduling API.

Sebelum kita melanjutkannya, yang penting untuk di mengerti adalah bahwa fitur penjadwalan yang disediakan oleh Laravel adalah seperti fitur lainnya dan tidak akan dipanggil secara otomatis. Jadi jika Anda berpikir bahwa Anda tidak perlu melakukan apa-apa pada system level maka saya katakan, Anda kurang beruntung.

Bahkan, hal pertama yang harus Anda lakukan jika Anda ingin menggunakan Laravel scheduling system adalah untuk menyiapkan cron job yang berjalan setiap menit dan memanggil perintah artisan yang ditampilkan dalam potongan berikut.

Perintah artisan di atas adalah panggilan Laravel scheduler, dan yang pada gilirannya mengeksekusi Semua cron jobs yang tertunda didefinisikan dalam aplikasi Anda.

Tentu saja, namun kita akan melihat bagaimana untuk menentukan scheduled tasks dalam aplikasi Laravel Anda, dan itu hal yang berikutnya kita dalami.

Ini adalah schedule method App\Console\Kernel class yang perlu Anda gunakan jika Anda ingin menentukan tugas-tugas aplikasi lebih spesifik.

silahkan ambil isi dari app/Console/Kernel.php file.

Seperti yang Anda lihat, inti code itu sendiri menyediakan contoh yang berguna. Dalam contoh di atas, Laravel menjalankan perintah artisan inspire per jam. Tidakkah Anda berpikir bahwa syntax sangat intuitif di saat pertama?

Bahkan, ada beberapa cara yang berbeda Laravel di mana memungkinkan Anda untuk menentukan schedule tasks:

  • Gunakan closure/callable.
  • Memanggil artisan command.
  • Mengeksekusi shell command.

Selain itu, ada banyak built-in frekuensi scheduling yang bisa Anda pilih dari:

  • setiap menit/setiap lima menit
  • jam/harian/mingguan/triwulanan/tahunan
  • pada waktu hari tertentu
  • dan banyak lagi

Bahkan, saya akan mengatakan bahwa ia menyediakan satu set lengkap rutinitas sehingga Anda tidak pernah perlu menyentuh shell untuk membuat custom cron jobs Anda!

Ya saya dapat memberitahu bahwa Anda ingin tahu bagaimana menerapkan custom scheduled tasks, dan itu adalah apa yang juga saya janjikan pada awal artikel.

Membuat Scheduled Task pertama Anda di Laravel

Seperti yang kita bahas, ada berbagai cara di mana Laravel memungkinkan Anda untuk menentukan tugas-tugas yang dijadwalkan. Mari kita pergi melalui masing-masing untuk memahami cara kerjanya.

Method Closure/Callable

API scheduling menyediakan method call yang memungkinkan Anda untuk melaksanakan callable atau closure function. Mari kita merevisi file app/Console/Kernel.php tersebut dengan kode berikut.

Seperti yang Anda lihat, kami telah melewati closure function sebagai argumen pertama dari method call. Juga, kami telah mengatur frekuensi untuk setiap 30 menit, sehingga hal ini akan melaksanakan closure function setiap 30 menit!

Di dalam contoh, kita menghitung total posting per pengguna dan memperbarui tabel statistics yang sesuai.

Perintah Artisan

Selain dari closures atau callables, Anda juga bisa perintah artisan schedule yang akan dieksekusi pada interval tertentu. Pada kenyataannya, yang seharusnya menjadi pendekatan yang lebih disukai atas closures karena menyediakan lebih baik code organization dan usabilitas pada waktu yang sama.

Lanjutkan dan revisi isi dari file app/Console/Kernel.php dengan petunjuk berikut.

Ini adalah command method yang Anda gunakan jika Anda ingin perintah schedule artisan seperti yang ditunjukkan dalam potongan kode di atas. Anda harus lulus perintah artisan signature sebagai argumen pertama command method.

Tentu saja, Anda perlu mendefinisikan perintah artisan sesuai juga di app/Console/Commands/UserStatistics.php.

Perintah Exec

Kita bisa mengatakan bahwa metode yang telah kita bahas sejauh ini khusus untuk aplikasi Laravel itu sendiri. Selain itu, Laravel juga memungkinkan Anda untuk menjadwalkan perintah shell sehingga Anda juga dapat menjalankan aplikasi eksternal.

Mari kita mulai lalui sebuah contoh cepat yang menunjukkan cara untuk mengambil cadangan dari database Anda setiap hari.

Ini jelas dari kode yang Anda perlu menggunakan exec method scheduler, dan Anda harus melewati command yang Anda ingin jalankan sebagai argumen pertama.

Selain itu, kami juga telah menggunakan method sendOutputTo yang memungkinkan Anda untuk mengumpulkan output perintah. Di sisi lain, ada method, emailOutputTo, yang memungkinkan Anda untuk email melakukan konten output!

Dan itu membawa kita ke akhir dari sebuah artikel. kenyataannya, kita baru saja menggali latar dari Laravel Scheduling API, dan banyak yang bisa ditawarkan dalam aplikasi nya.

Kesimpulan

Hari ini, kita melewati task scheduling API dalam Laravel web framework. Itu menarik untuk melihat bagaimana dengan mudah memungkinkan Anda untuk mengelola tugas-tugas yang perlu dijalankan secara berkala.

Di awal artikel, kita membahas cara menyiapkan scheduled tasks, dan berikut bahwa kami memperkenalkan cara Laravel untuk melakukannya. Di paruh kedua artikel, kita melewati beberapa contoh-contoh praktis untuk menunjukkan task scheduling konsep.

Saya berharap bahwa Anda menikmati artikel ini, dan Anda harus merasa lebih percaya diri tentang mengatur scheduled tasks di Laravel. Bagi Anda yang hanya akan mulai dengan Laravel atau mencari untuk memperluas pengetahuan Anda, situs, atau aplikasi dengan ekstensi, kami memiliki berbagai hal yang Anda dapat belajar di Envato Market.

Apa saja yang muncul dalam pikiran Anda, mari kita memulai percakapan menggunakan feed di bawah ini!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.