Bagaimana Mengendalikan Pendengar Acara Beratur di Laravel?
Melaksanakan harus membolehkan beratur; 2. Gunakan PHP Artisan Make: pendengar -untuk persediaan automatik; 3. Memastikan hanya data bersiri seperti model fasih atau primitif digunakan untuk mencegah isu -isu bersiri; 4. Sesuaikan tingkah laku giliran melalui sifat seperti $ sambungan, $ giliran, $ kelewatan atau kaedah seperti onConnection (), onqueue (), kelewatan (); 5. Mengendalikan kegagalan dengan kaedah yang gagal () dan kawalan semula menggunakan $ tries, $ backoff, atau backoff (); 6. Peristiwa penghantaran serentak apabila diperlukan menggunakan peristiwa :: fakeFor () atau logik bersyarat; 7. Ikuti amalan terbaik dengan menempah beratur untuk tugas-tugas yang berat, menjaga pendengar fokus, mengelakkan lebihan, memantau prestasi, dan menguji siri-semua untuk memastikan prestasi dan kebolehpercayaan yang optimum dalam aplikasi Laravel.
Di Laravel, pendengar acara beratur membolehkan anda menangguhkan pelaksanaan logik yang berat atau memakan masa seperti menghantar e-mel, membuat panggilan API, atau memproses data-sehingga selepas kitaran permintaan utama selesai. Ini meningkatkan masa tindak balas dan prestasi aplikasi keseluruhan.

Berikut adalah cara mengendalikan pendengar acara beratur di Laravel:
1. Buat pendengar melaksanakan harus
Untuk menghilangkan pendengar acara, kelas pendengar anda mesti melaksanakan antara muka Illuminate\Contracts\Queue\ShouldQueue
.

Gunakan Illuminate \ kontrak \ giliran \ shouldqueue; Kelas Sendwelcomeemail Alat Kawalan { // pendengar ini kini beratur }
Laravel secara automatik akan menghantar kerja pendengar ke barisan apabila acara itu dipecat.
2. Menjana pendengar yang boleh dikaitkan dengan tukang masak
Apabila mencipta pendengar melalui artisan, gunakan bendera --queued

PHP Artisan Make: Pendengar Sendwelcomeemail -
Ini menjana pendengar yang sudah ShouldQueue
.
3. Mengendalikan kebergantungan dan bersiri
Pendengar beratur bersiri dan disimpan dalam barisan, jadi anda mesti berhati -hati tentang apa yang disuntik ke dalam pembina atau disimpan sebagai hartanah.
- Hanya termasuk data serializable (contohnya, contoh model fasih, jenis primitif).
- Elakkan suntikan penutupan, contoh PDO, atau objek yang tidak berseri.
Laravel secara automatik mengendalikan model yang fasih dengan menyimpan hanya kunci utama mereka dan mengembalikan semula mereka apabila kerja berjalan.
Fungsi awam __Construct (pengguna awam $ pengguna) {}
Ini berfungsi dengan selamat kerana Laravel hanya bersiri ID model dan mengembalikannya apabila memproses tugas.
4. Kawalan sambungan giliran, nama giliran, dan kelewatan
Anda boleh menyesuaikan tingkah laku giliran menggunakan sifat atau kaedah awam dalam pendengar anda:
Kelas Sendwelcomeemail Alat Kawalan { awam $ connection = 'redis'; public $ queue = 'e -mel'; awam $ kelewatan = 60; // pekerjaan kelewatan sebanyak 60 saat Pemegang Fungsi Awam (userregistered $ event) { // Hantar logik e -mel } }
Sebagai alternatif, gunakan kaedah seperti onConnection()
, onQueue()
, atau delay()
apabila melampirkan pendengar kepada peristiwa (misalnya, dalam EventServiceProvider
):
dilindungi $ mendengar = [ Userregistered :: class => [ Sendwelcomeemail :: Kelas, ], ]; // atau secara dinamik: Acara :: Dengar (UsErregistered :: Class, SendwelcomeEmail :: Class); // dengan penyesuaian: Acara :: Dengar (userregistered :: class, function ($ event) { SendWelcomeEmail :: Dispatch ($ event-> user) -> onConnection ('redis') -> onqueue ('e -mel') -> kelewatan (sekarang ()-> addMinutes (5)); });
Nota: Pendekatan ini berfungsi lebih baik dengan pekerjaan daripada pendengar. Untuk kawalan halus, pertimbangkan untuk menggunakan pekerjaan beratur dan bukannya pendengar.
5. Pengendalian ralat dan logik cuba
Pendengar yang beratur mengikuti tingkah laku pekerjaan giliran standard:
- Pekerjaan gagal pergi ke jadual
failed_jobs
jika dikonfigurasikan. - Anda boleh menentukan kaedah
failed()
untuk menangani kegagalan:
Fungsi awam gagal ($ acara, $ pengecualian) { // ralat log, maklumkan admin, dll. }
Tetapkan kelewatan semula atau percubaan maksimum:
awam $ tries = 3; awam $ backoff = 10; // tunggu 10 saat sebelum mencuba
Atau menggunakan kaedah:
Backoff fungsi awam () { kembali [5, 10, 15]; // Meningkatkan kelewatan }
6. Peristiwa Penghantaran Segerak apabila diperlukan
Kadang -kadang anda perlu menjalankan pendengar dengan segera (contohnya, dalam ujian atau konteks tertentu). Gunakan:
Acara (baru UsErregistered ($ user)); // Kebakaran Bernilai Pendengar Melalui Baris
Atau penghantaran serentak:
Acara :: Dispatch (USErregistered baru ($ pengguna)); // masih menggunakan giliran kecuali pendengar tidak sepatutnya // untuk memaksa penyegerakan: Lumpuhkan sementara beratur Acara :: FakeFor (fungsi () { Acara (baru UsErregistered ($ user)); // berjalan segera });
Sebagai alternatif, jangan melaksanakan ShouldQueue
semasa penguji tempatan/atau pengiriman secara kondusif.
7. Amalan Terbaik
- Gunakan pendengar beratur untuk tugas yang perlahan : e -mel, pemberitahuan, analisis, webhooks.
- Pastikan pendengar fokus : Satu tanggungjawab setiap pendengar.
- Elakkan terlalu banyak : Logik ringan (contohnya, pembalakan) harus berjalan sejajar.
- Memantau prestasi barisan : Gunakan Horizon atau Pengakap untuk mengesan kerja.
- Ujian dengan teliti : Pastikan kerja dan model bersiri tidak hilang.
Ringkasan
Untuk mengendalikan pendengar acara beratur dengan berkesan:
- Melaksanakan
ShouldQueue
- Gunakan Artisan untuk menjana mereka
- Berhati -hati dengan serialisasi
- Sesuaikan tetapan barisan yang diperlukan
- Mengendalikan kegagalan dan pengambilan semula
- Tahu bila hendak giliran vs berjalan serentak
Pendengar beratur berkuasa tetapi harus digunakan dengan bijak. Apabila ragu -ragu, pertimbangkan untuk menghantar pekerjaan beratur yang berdedikasi dari pendengar anda dan bukannya meletakkan logik kompleks secara langsung di dalamnya.
Pada asasnya, Laravel menjadikannya mudah -hanya ShouldQueue
, dan selebihnya dikendalikan oleh sistem giliran.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Pendengar Acara Beratur di Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cache konfigurasi Laravel meningkatkan prestasi dengan menggabungkan semua fail konfigurasi ke dalam fail cache tunggal. Mengaktifkan cache konfigurasi dalam persekitaran pengeluaran dapat mengurangkan operasi I/O dan penguraian fail pada setiap permintaan, dengan itu mempercepat pemuatan konfigurasi; 1. Ia harus diaktifkan apabila permohonan itu digunakan, konfigurasi stabil dan tiada perubahan yang kerap diperlukan; 2. Selepas membolehkan, ubah suai konfigurasi, anda perlu menjalankan semula phpartisanconfig: cache untuk berkuat kuasa; 3. Elakkan menggunakan logik dinamik atau penutupan yang bergantung kepada keadaan runtime dalam fail konfigurasi; 4. Apabila masalah penyelesaian masalah, anda harus terlebih dahulu membersihkan cache, periksa pembolehubah .Env dan cache semula.

Cara yang paling biasa untuk menjana laluan yang dinamakan di Laravel adalah menggunakan fungsi penolong laluan (), yang secara automatik sepadan dengan laluan berdasarkan nama laluan dan mengendalikan parameter mengikat. 1. Lulus nama laluan dan parameter dalam pengawal atau pandangan, seperti laluan ('user.profile', ['id' => 1]); 2. Apabila pelbagai parameter, anda hanya perlu lulus array, dan perintah itu tidak menjejaskan padanan, seperti laluan ('user.post.show', ['id' => 1, 'postid' => 10]); 3. Pautan boleh dibenamkan secara langsung dalam templat bilah, seperti melihat maklumat; 4. Apabila parameter pilihan tidak disediakan, mereka tidak dipaparkan, seperti laluan ('user.post',

Inti mengendalikan permintaan dan respons HTTP di Laravel adalah untuk menguasai pengambilalihan data permintaan, pulangan tindak balas dan muat naik fail. 1. Apabila menerima data permintaan, anda boleh menyuntik contoh permintaan melalui jenis petikan dan menggunakan input () atau kaedah sihir untuk mendapatkan medan, dan menggabungkan mengesahkan () atau membentuk kelas permintaan untuk pengesahan; 2. REBAT RESPONSE menyokong rentetan, pandangan, JSON, respons dengan kod status dan tajuk dan operasi redirect; 3. Apabila memproses fail muat naik, anda perlu menggunakan kaedah fail () dan simpan () untuk menyimpan fail. Sebelum memuat naik, anda perlu mengesahkan jenis dan saiz fail, dan laluan penyimpanan boleh disimpan ke pangkalan data.

Eloquentscopes Laravel adalah alat yang merangkumi logik pertanyaan biasa, dibahagikan kepada skop tempatan dan skop global. 1. Skop tempatan ditakrifkan dengan kaedah yang bermula dengan skop dan perlu dipanggil secara eksplisit, seperti pos :: diterbitkan (); 2. Skop global secara automatik digunakan untuk semua pertanyaan, sering digunakan untuk pemadaman lembut atau sistem multi-penyewa, dan antara muka skop perlu dilaksanakan dan didaftarkan dalam model; 3. Skop boleh dilengkapi dengan parameter, seperti penapisan artikel mengikut tahun atau bulan, dan parameter yang sepadan diluluskan ketika memanggil; 4. Perhatikan spesifikasi penamaan, panggilan rantai, pelepasan sementara dan pengembangan gabungan apabila menggunakan untuk meningkatkan kejelasan kod dan kebolehgunaan semula.

Terdapat dua kaedah utama untuk pengesahan permintaan di Laravel: Pengesahan Pengawal dan Kelas Permintaan Borang. 1. Kaedah mengesahkan () dalam pengawal sesuai untuk senario mudah, secara langsung meluluskan peraturan dan secara automatik mengembalikan kesilapan; 2. Kelas FormRequest sesuai untuk senario yang kompleks atau boleh diguna semula, mewujudkan kelas melalui artis dan menentukan peraturan dalam peraturan () untuk mencapai kod decoupling dan penggunaan semula; 3. Ralat ralat boleh disesuaikan melalui mesej () untuk meningkatkan pengalaman pengguna; 4. Menentukan alias medan melalui atribut () untuk membuat mesej ralat lebih mesra; Kedua -dua kaedah ini mempunyai kelebihan dan kekurangan mereka, dan penyelesaian yang sesuai harus dipilih mengikut keperluan projek.

Kilang pangkalan data adalah alat di Laravel untuk menghasilkan data palsu model. Ia dengan cepat mewujudkan data yang diperlukan untuk ujian atau pembangunan dengan menentukan peraturan medan. Sebagai contoh, selepas menggunakan phpartisanMake: kilang untuk menghasilkan fail kilang, menetapkan logik generasi bidang seperti nama dan e-mel dalam kaedah definisi (), dan mencipta rekod melalui pengguna :: kilang ()-> create (); 1. Menyokong penjanaan data, seperti pengguna :: kilang (10)-> membuat (); 2. Gunakan membuat () untuk menghasilkan array data yang tidak diturunkan; 3. Membolehkan penindasan sementara nilai medan; 4. Menyokong hubungan persatuan, seperti penciptaan automatik

ThetranslatorfacadeinlaravelisusedforlocalizationByFetchingTranslatedStringsandswitchingLanguageAgeArtime.touseit, StoretranslationstringsinLanguageFilesunderthelangdirectory (cth

UsemockeryforcustomdependencybysettingExpectationswithShouldReceive (). 2.Uselaravel'sfake () methorfacadeslikemail, giliran, andhttptopreventrealinterint
