Memproses tugas latar belakang menggunakan beratur laravel
Jul 06, 2025 am 01:50 AMUntuk menggunakan beratur Laravel dengan berkesan, mula -mula mengkonfigurasi pemacu giliran dalam .env dan config/queue.php, kemudian membuat dan menghantar pekerjaan melalui artisan, mengutamakan dengan beratur yang berbeza, mengendalikan pengecualian, memantau pekerjaan yang gagal melalui jadual yang gagal. 1. Tetapkan Owleon_Connection ke Redis atau pangkalan data untuk pengeluaran. 2. Menjana Pekerjaan dengan PHP Artisan Membuat: Kerja dan Melaksanakan Logik dalam Pemegang (). 3. Menghantar pekerjaan dengan segera atau melambatkannya dengan onqueue () dan kelewatan (). 4. Mengutamakan pekerjaan menggunakan nama giliran yang berbeza. 5. Mengendalikan pengecualian dan membolehkan pengambilan semula dengan --tri = 3. 6. Buat jadual gagal_jobs melalui penghijrahan untuk log kegagalan. 7. Cuba semula pekerjaan gagal secara manual dengan PHP Artisan Queue: cuba semula semua. 8. Memantau balak dan pekerjaan yang gagal untuk debugging. 9. Skala dengan pelbagai pekerja melalui pilihan -dan pilihan. 10. Gunakan Laravel Horizon untuk pemantauan dan pengurusan berasaskan Redis.
Beratur Laravel adalah alat yang berkuasa apabila anda perlu memproses tugas latar belakang tanpa melambatkan aliran aplikasi utama. Sekiranya anda berhadapan dengan menghantar e -mel, memproses imej, atau menyegerakkan data dengan perkhidmatan luaran -membolehkan anda menangguhkan operasi ini untuk dijalankan di latar belakang.

Inilah cara menjadikannya berfungsi dengan baik untuk kes penggunaan anda.

Menyiapkan Pemandu Baris
Sebelum menyelam ke dalam kerja menulis, pastikan pemandu giliran anda disediakan dengan betul. Laravel menyokong beberapa pemandu seperti sync
, database
, redis
, dan juga Amazon SQS
.
- Untuk pembangunan tempatan,
sync
berfungsi dengan baik -ia menjalankan tugas dengan segera. - Dalam pengeluaran,
redis
ataudatabase
lebih baik kerana ia membenarkan pemprosesan tak segerak.
Untuk mengkonfigurasinya:

- Buka
.env
- Tetapkan
QUEUE_CONNECTION=redis
(atau pangkalan data) - Pastikan butiran sambungan redis atau pangkalan data anda betul dalam
config/queue.php
Juga, jangan lupa untuk menjalankan pekerja giliran menggunakan php artisan queue:work
. Jika tidak, tiada apa yang akan diproses.
Mencipta dan menghantar pekerjaan
Anda boleh menjana pekerjaan baru menggunakan Artisan:
PHP Artisan Make: ProcessImageUpload PHP
Di dalam kaedah handle()
, letakkan logik sebenar seperti mengubah saiz imej atau memuat naik ke S3.
Apabila anda ingin menghantar pekerjaan, lakukan seperti ini:
ProcessImageUpload :: Dispatch ($ image);
Atau jika anda mahu melambatkannya:
ProcessImageUpload :: Dispatch ($ image)-> onQueue ('High')-> Delay (10);
Beberapa petua:
- Gunakan antrian yang berbeza (
default
,high
,emails
) untuk mengutamakan pekerjaan tertentu. - Jangan lulus objek besar; Sebaliknya, lulus ID dan ambil di dalam pekerjaan.
- Mengendalikan pengecualian dengan anggun -pekerjaan harus gagal dengan selamat dan cuba lagi jika diperlukan.
Memantau dan menyahpepijat pekerjaan gagal
Pekerjaan kadang -kadang gagal, terutamanya apabila berurusan dengan API luaran atau tamat masa. Laravel mempunyai cara terbina dalam untuk mengendalikannya.
Pekerjaan gagal pergi ke jadual failed_jobs
secara lalai. Untuk menciptanya:
PHP Artisan Giliran: Gagal-meja PHP Artisan berhijrah
Sekiranya pekerjaan gagal, Laravel tidak akan mencuba secara automatik melainkan anda menentukan:
PHP Artisan Giliran: Kerja -Lawan = 3
Anda juga boleh mencuba semula pekerjaan yang gagal secara manual:
PHP Artisan Giliran: Cuba semula semua
Sekiranya anda menghadapi masalah:
- Semak log dalam
storage/logs/laravel.log
- Lihat entri pekerjaan yang gagal untuk melihat apa yang salah
- Pekerjaan ujian secara tempatan sebelum menolak pengeluaran
Penskalaan beratur dengan berkesan
Menjalankan pekerja tunggal tidak selalu cukup. Apabila pancang lalu lintas, anda mungkin memerlukan lebih banyak pekerja atau proses penyelia untuk memastikan perkara berjalan lancar.
Gunakan alat seperti Laravel Horizon jika anda menggunakan Redis. Ia memberi anda papan pemuka untuk memantau kerja -kerja kerja, pekerjaan yang gagal, dan status pekerja.
Untuk persediaan asas:
- Mulakan Pelbagai Pekerja:
php artisan queue:work --queue=default,high --sleep=3
- Gunakan penyelia untuk memastikan pekerja berjalan secara berterusan
- Pantau Penggunaan Memori:
--memory=128
Had memori PHP setiap pekerjaan
Pertimbangkan juga:
- Menghilangkan pekerjaan jangka panjang untuk memisahkan beratur
- Menetapkan masa tamat dan tempoh tidur berdasarkan jenis pekerjaan
- Menggunakan keutamaan untuk memastikan pekerjaan kritikal diproses terlebih dahulu
Itulah bagaimana beratur Laravel sesuai untuk mengendalikan tugas latar belakang dengan cekap. Anda tidak memerlukan segala -galanya sekaligus, tetapi mengetahui cara menyusun pekerjaan, menguruskan kegagalan, dan pekerja skala membuat perbezaan besar apabila aplikasi anda tumbuh.
Atas ialah kandungan terperinci Memproses tugas latar belakang menggunakan beratur 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)

Topik panas

Di Laravel, penghalaan adalah titik masuk aplikasi yang mentakrifkan logik tindak balas apabila pelanggan meminta URI tertentu. Laluan memetakan URL ke kod pemprosesan yang sepadan, yang biasanya mengandungi kaedah HTTP, URI, dan tindakan (penutupan atau kaedah pengawal). 1. Struktur Asas Definisi Laluan: Permintaan Bind menggunakan Route :: Verb ('/uri', Tindakan); 2. Menyokong pelbagai kata kerja HTTP seperti GET, POST, PUT, dan sebagainya; 3. Parameter dinamik boleh ditakrifkan melalui {param} dan data boleh diluluskan; 4. Laluan boleh dinamakan untuk menjana URL atau pengalihan; 5. Gunakan fungsi kumpulan untuk menambahkan awalan, middleware dan tetapan perkongsian yang seragam; 6. Fail penghalaan dibahagikan kepada web.php, AP mengikut tujuan mereka

Inlaravel, policiesorganizeAuthorizationLogicformodelactions.1.PoliciesareClassSesSesSelSelwithMethodsLikeView, create, Update, andDeletetHatReturnTrueorfalsebasedOnuserpermissions.2.Toregisterapolicy, Mapthemodeltoitspolicheon.

Untuk membuat rekod baru dalam pangkalan data menggunakan fasih, terdapat empat kaedah utama: 1. Gunakan kaedah membuat untuk membuat rekod dengan cepat dengan lulus dalam array atribut, seperti pengguna :: create (['name' => 'Johndoe', 'e -mel' => 'John@example.com']); 2. Gunakan kaedah simpan untuk secara manual meniru model dan menetapkan nilai untuk menyimpan satu demi satu, yang sesuai untuk senario di mana tugasan bersyarat atau logik tambahan diperlukan; 3. Gunakan FirstOrcreate untuk mencari atau membuat rekod berdasarkan keadaan carian untuk mengelakkan data pendua; 4. Gunakan UpdateOrcreate untuk mencari rekod dan kemas kini, jika tidak, buatnya, yang sesuai untuk memproses data yang diimport, dan lain -lain, yang mungkin berulang.

ThePhpartisandb: SeedCommandinlaravelisusedTopopulatethedatabasewithtestestordefaultdata.1.iteXecuteStherun () methodinseederclasslocatedin/database/seeders.2.developerscanrunallseeders, aspecifyseederusingsusing-classsoSseederusing-classsoSseederusing-baseSsifeSsoederusing-baseSsifeSsoederusing-baseedselsusing-classeedsusing-basseedselsusing-

Artisan adalah alat perintah Laravel untuk meningkatkan kecekapan pembangunan. Fungsi terasnya termasuk: 1. Menjana struktur kod, seperti pengawal, model, dan lain -lain, dan secara automatik membuat fail melalui membuat: pengawal dan arahan lain; 2. Menguruskan penghijrahan pangkalan data dan mengisi, gunakan berhijrah untuk menjalankan penghijrahan, dan DB: benih untuk mengisi data; 3. Menyokong perintah adat, seperti Make: Command Creation Command Class untuk melaksanakan enkapsulasi logik perniagaan; 4. Memberi fungsi debugging dan pengurusan alam sekitar, seperti kunci: menjana untuk menjana kunci, dan berfungsi untuk memulakan pelayan pembangunan. Kemahiran dalam menggunakan Artisan dapat meningkatkan kecekapan pembangunan Laravel dengan ketara.

Ya, youpaninstalllaravelonanyoperatingsystembyfollowingthesesteps: 1.InstallphpandrequiredextensionsLikembstring, openssl, andxmlusingtoolsLikexampponWindows, homeBrewonmacos, oraptonlarunux;

Menentukan kaedah (juga dikenali sebagai tindakan) dalam pengawal adalah untuk memberitahu aplikasi apa yang perlu dilakukan apabila seseorang melawat URL tertentu. Kaedah ini biasanya memproses permintaan, memproses data, dan mengembalikan respons seperti halaman HTML atau JSON. Memahami Struktur Asas: Kebanyakan kerangka web (seperti RubyonRails, Laravel, atau SpringMVC) menggunakan pengawal yang berkaitan dengan operasi kumpulan. Kaedah dalam setiap pengawal biasanya sesuai dengan laluan, iaitu laluan URL yang dapat diakses oleh seseorang. Sebagai contoh, mungkin terdapat kaedah berikut dalam PostSController: 1.Index () - Senarai Pos Paparan; 2.Show () - memaparkan jawatan individu; 3.Create () - Mengendalikan membuat jawatan baru; 4.U

Toruntestsinlaravelefectively, usethephpartiSanteStCommandWhichSimplifiesphpunitusage.1.setupa.env.testingfileandConfigurePhp Unit.xmltouseatestDatabaselikesqlite.2.GenerateTestFilesusingPhpartisanMake: ujian, menggunakan-Unitforunittests.3.WriteTestSwithmeth
