


Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Queues untuk mengendalikan tugas tak segerak?
Pembangunan Laravel: Bagaimana untuk menggunakan Baris Laravel untuk mengendalikan tugas tak segerak?
Laravel ialah rangka kerja PHP popular yang ciri-cirinya yang berkuasa menjadikannya pilihan terbaik untuk pembangunan aplikasi web. Menggunakan Laravel, anda boleh mencipta aplikasi web yang kompleks dengan cepat dan mudah. Dalam artikel ini, kita akan membincangkan penggunaan Laravel Queues, satu ciri yang membantu dalam mengendalikan tugas tak segerak.
Konsep tugas tak segerak
Apabila pengguna melakukan tugasan dalam aplikasi web, dia perlu menunggu tugasan selesai sebelum mendapat keputusan. Ini ialah tugas penyegerakan. Tetapi bagaimana jika kita mahu memprosesnya tanpa pengguna perlu menunggu tugasan selesai? Ini adalah tugas tak segerak!
Tugas tak segerak tidak menjejaskan prestasi respons masa nyata pengguna kerana mereka tidak menunggu tugasan selesai sebelum mengembalikan hasil. Sebaliknya, tugasan ini dimasukkan ke dalam baris gilir dan diproses satu demi satu di latar belakang. Sebagai contoh, pengguna memuat naik fail ke pelayan. Jika muat naik mengambil masa terlalu lama kerana fail terlalu besar, pengguna mungkin menjadi tidak sabar dan membatalkan muat naik. Pada ketika ini, menggunakan tugas tak segerak akan membantu mengelakkan churn pengguna.
Baris Gilir Laravel ialah sebahagian daripada rangka kerja Laravel yang membantu dalam mengendalikan tugas tak segerak.
Membina Baris Laravel
Langkah pertama dalam menggunakan baris gilir dalam Laravel ialah memberitahu komputer baris gilir mana yang perlu diproses. Dalam fail Queue.php anda boleh mentakrifkan baris gilir dan tentukan pemacu yang digunakan oleh baris gilir. Pemacu boleh menjadi pemacu tempatan, pemacu pangkalan data, pemacu Redis, pemacu Beanstalk, dll. Berikut ialah contoh:
'connection' => env('QUEUE_DRIVER', 'sync'), 'driver' => env('QUEUE_DRIVER', 'sync'), 'queue' => [ 'default' => [ 'connection' => 'default', 'queue' => 'default', 'retry_after' => 90, 'backoff' => [ 'strategy' => 'exponential', 'max_attempts' => 3, 'delay' => 1000, ], ], ],
Contoh kod di atas menunjukkan bahawa baris gilir menggunakan pemacu 'penyegerakan' secara lalai. Walau bagaimanapun, anda boleh menentukan pemacu yang berbeza dalam fail .env.
Tambah Gilir
Sekarang kita telah menentukan baris gilir dan pemacunya, kita perlu menambah tugasan pada baris gilir untuk diproses. Dalam rangka kerja Laravel, tugasan ditambahkan pada baris gilir menggunakan kaedah dispatch(). Sebagai contoh, kami menggunakan kod berikut untuk menambah tugasan pada baris gilir:
ProcessPodcasts::dispatch($podcast);
Dalam kod di atas, ProcessPodcasts ialah tugas yang ingin kami laksanakan dan $podcast ialah parameter yang dihantar kepada tugas itu.
Buat Tugasan
Sekarang, mari kita buat tugasan tak segerak menggunakan Laravel. Untuk melakukan ini, kami akan mencipta fail Job.php baharu dalam direktori app/Jobs. Berikut ialah contoh kod:
<?php namespace AppJobs; use AppMailSendWelcomeEmail; use AppUser; use IlluminateBusQueueable; use IlluminateContractsQueueShouldQueue; use IlluminateFoundationBusDispatchable; use IlluminateQueueInteractsWithQueue; use IlluminateQueueSerializesModels; use IlluminateSupportFacadesMail; class SendWelcomeEmailJob implements ShouldQueue { // Traits used by the class use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $user; /** * Create a new job instance. * * @param User $user */ public function __construct(User $user) { $this->user = $user; } /** * Execute the job. * * @return void */ public function handle() { Mail::to($this->user->email)->send(new SendWelcomeEmail($this->user)); } }
Kod di atas mencipta tugas tak segerak dipanggil SendWelcomeEmailJob. Tugasan ini menghantar e-mel kepada pengguna baharu. Oleh kerana tugasan berada dalam baris gilir, pengguna tidak perlu menunggu e-mel dihantar untuk diselesaikan.
Barisan Pelaksanaan
Dengan operasi di atas, kami telah mencipta tugasan dan menambahkannya pada baris gilir. Walau bagaimanapun, kita perlu melaksanakan tugas dalam baris gilir. Terdapat beberapa cara untuk melaksanakan baris gilir, berikut ialah contoh kod:
php artisan queue:work
Dalam kod di atas, kami melaksanakan baris gilir menggunakan perintah baris gilir: kerja dalam Laravel CLI. Perintah ini akan terus dilaksanakan sehingga tiada lagi tugas untuk diproses.
Terdapat cara lain untuk melaksanakan baris gilir, seperti melaksanakan baris gilir dengan bantuan penyelia. Penyelia ialah alat pengurusan proses yang membolehkan kami mengurus aplikasi Laravel di latar belakang. Untuk melaksanakan baris gilir dengan bantuan penyelia, ikuti langkah berikut:
- Pasang penyelia (sila rujuk penggunaan penyelia).
- Buat fail baru queue-worker.conf yang terletak dalam direktori /etc/supervisor/conf.d.
- Masukkan kod berikut:
[program:queue-worker] process_name=%(program_name)s_%(process_num)02d command=php /path/to/artisan queue:work autostart=true autorestart=true user=user numprocs=1 redirect_stderr=true stdout_logfile=/path/to/your/logs/queue-worker.log
Kod di atas mencipta pekerja baris gilir untuk penyelia. Apabila penyelia bermula, program ini akan mula memproses baris gilir dan melaksanakan di latar belakang.
Kesimpulan
Dalam artikel ini, kami mempelajari cara menggunakan Barisan Laravel untuk pemprosesan tugas tak segerak. Kami mempelajari tentang konsep Baris Gilir dan menentukan baris gilir dan pemandu baharu. Kami juga mencipta tugasan tak segerak dan melihat cara melaksanakannya menggunakan Baris Gilir Laravel. Secara keseluruhannya, Laravel Queues ialah komponen yang sangat berguna dalam pembangunan Laravel, yang boleh membantu kami mengendalikan tugas tak segerak dengan mudah.
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Queues untuk mengendalikan tugas tak segerak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

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





Kaedah untuk mendapatkan kod kembali apabila menghantar e -mel Laravel gagal. Apabila menggunakan Laravel untuk membangunkan aplikasi, anda sering menghadapi situasi di mana anda perlu menghantar kod pengesahan. Dan pada hakikatnya ...

Tugas Jadual Laravel menjalankan penyelesaian masalah yang tidak responsif semasa menggunakan penjadualan tugas jadual Laravel, banyak pemaju akan menghadapi masalah ini: Jadual: Jalankan ...

Kaedah mengendalikan kegagalan e -mel Laravel untuk menghantar kod pengesahan adalah menggunakan Laravel ...

Cara melaksanakan fungsi jadual klik tersuai untuk menambah data dalam dcatadmin (laravel-admin) semasa menggunakan dcat ...

Laravel - Dump Server - Laravel dump server datang dengan versi Laravel 5.7. Versi sebelumnya tidak termasuk pelayan dump. Pelayan dump akan menjadi kebergantungan pembangunan dalam fail komposer laravel/laravel.

Kesan perkongsian sambungan Redis dalam rangka kerja Laravel dan pilih kaedah apabila menggunakan Rangka Kerja Laravel dan Redis, pemaju mungkin menghadapi masalah: melalui konfigurasi ...

Sambungan pangkalan data penyewa tersuai dalam pakej lanjutan multi-penyewa Larave Stancl/penyewaan ketika membina aplikasi multi-penyewa menggunakan pakej lanjutan multi-penyewa Larave Stancl/penyewaan, ...

Laravel - URL Tindakan - Laravel 5.7 memperkenalkan ciri baharu yang dipanggil "URL tindakan boleh panggil". Ciri ini serupa dengan yang terdapat dalam Laravel 5.6 yang menerima kaedah rentetan dalam tindakan. Tujuan utama sintaks baharu memperkenalkan Laravel 5.7 adalah untuk mengarahkanl
