Dalam tutorial ini saya akan menunjukkan kepada anda cara kami boleh menjalankan kerja cron dalam Laravel, tetapi di atas semua kami akan memastikan perkara yang mudah dan mudah untuk pelajar kami. Kami akan meneroka cara menyediakan dan menjalankan tugas automatik ini terus pada komputer anda sendiri semasa kami membina apl Laravel kami.
Pertama sekali, apakah sebenarnya kerja cron? Anggap ia sebagai pembantu peribadi untuk tapak web anda - yang tidak pernah tidur dan sentiasa muncul tepat pada masanya. Ini adalah tugas yang anda jadualkan untuk dijalankan secara automatik pada masa tertentu. Dalam Laravel, kami menggunakan ini untuk mengendalikan kerja berulang yang memastikan aplikasi kami berjalan lancar.
Sekarang, anda mungkin tertanya-tanya, "Bagaimanakah saya boleh menjalankan tugas cron ini pada komputer saya sendiri?" Kami akan meneruskan langkah demi langkah ini, dan pada akhirnya, anda akan menjadualkan tugas seperti seorang profesional.
Mari kita mulakan dengan inti sistem penjadualan Laravel - fail app/Console/Kernel.php. Di sinilah keajaiban berlaku. Apabila anda membuka fail ini, anda akan melihat kaedah yang dipanggil jadual. Ini adalah taman permainan anda untuk menyediakan tugasan. Begini rupanya:
protected function schedule(Schedule $schedule) { $schedule->command('emails:send')->daily(); }
Dalam contoh ini, kami akan memberitahu Laravel, "Hei, saya mahu anda menghantar e-mel setiap hari." Semudah itu! Laravel memberi anda banyak pilihan untuk masa menjalankan tugas anda. Anda boleh menjalankannya setiap jam, sekali seminggu, atau setiap lima minit jika anda mahu.
Sekarang, di sinilah keadaan menjadi agak rumit. Pada pelayan web sebenar, terdapat sistem yang menjalankan tugas berjadual ini secara automatik. Tetapi pada komputer anda sendiri, kita perlu menjadi sedikit kreatif.
Laravel memberi kami arahan yang berguna untuk menjalankan tugas berjadual kami secara manual. Anda boleh menaip ini ke dalam terminal anda:
php artisan schedule:run
Arahan ini seperti berkata, "Jalankan semua tugasan yang perlu dibayar sekarang." Tetapi sejujurnya, anda tidak mahu duduk di sana menaip arahan ini berulang kali, bukan?
Jadi, inilah helah yang kemas. Kita boleh mencipta skrip ringkas yang menjalankan arahan ini untuk kita setiap minit. Ia seperti mempunyai pembantu robot kecil pada komputer anda. Begini rupa skrip itu:
#!/bin/bash while true do php /path/to/your/project/artisan schedule:run >> /dev/null 2>&1 sleep 60 done
Jangan biarkan ini menakutkan anda! Ia hanya memberitahu komputer anda untuk menjalankan arahan schedule:run setiap 60 saat. Anda akan menyimpan ini sebagai fail .sh dan menjalankannya di latar belakang semasa anda sedang mengerjakan projek anda.
Semasa anda menguji tugasan berjadual anda, adalah idea yang baik untuk menambah beberapa pengelogan. Dengan cara ini, anda boleh melihat apa yang berlaku di sebalik tabir. Ia seperti meninggalkan jejak serbuk roti untuk diri sendiri.
Ingat, persediaan ini bagus untuk semasa anda membina dan menguji apl anda pada komputer anda sendiri. Apabila anda sudah bersedia untuk melancarkan tapak web anda secara sebenar, anda perlu menyediakan perkara yang agak berbeza pada pelayan web anda.
Pencipta Laravel, Taylor Otwell, pernah berkata, "Penjadualan tugas ialah aspek penting dalam pembangunan web moden, membolehkan pembangun mengautomasikan tugasan berulang dan meningkatkan kecekapan keseluruhan aplikasi mereka." Dia betul-betul betul! Dengan menguasai tugas berjadual, anda mengambil langkah besar ke arah membina aplikasi web yang lebih berkuasa dan cekap.
Jadi begitulah! Anda kini dilengkapi untuk menyediakan dan menjalankan tugas cron pada komputer anda sendiri semasa membina apl Laravel anda. Ia mungkin kelihatan agak rumit pada mulanya, tetapi dengan latihan, anda akan mendapati ia menjadi sifat kedua. Teruskan bereksperimen dan sebelum anda sedar, anda akan menjadualkan tugas seperti pakar yang berpengalaman!
Atas ialah kandungan terperinci Cara Menjalankan Pekerjaan Cron dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!