Jadual Kandungan
Penggunaan baris gilir dalam laravel
Rumah rangka kerja php Laravel Apakah giliran laravel

Apakah giliran laravel

Feb 14, 2022 pm 03:25 PM
laravel beratur

Dalam laravel, baris gilir ialah jadual linear dengan operasi terhad Ia hanya membenarkan operasi pemadaman di hujung hadapan jadual (kepala baris gilir) dan operasi sisipan di hujung belakang jadual (ekor baris gilir). ; Melalui baris gilir, pembangun boleh menangguhkan pemprosesan tugas yang memakan masa, yang boleh meningkatkan kelajuan tindak balas permintaan web.

Apakah giliran laravel

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Laravel 6, komputer Dell G3.

Penggunaan baris gilir dalam laravel

1. Apakah itu baris gilir

Barisan Ia adalah jadual linear dengan operasi terhad Ciri khasnya ialah ia hanya membenarkan operasi pemadaman di hujung hadapan jadual dan operasi sisipan di hujung belakang jadual. Penghujung yang melakukan operasi sisipan dipanggil ekor baris gilir, dan penghujung yang melakukan operasi pemadaman dipanggil ketua baris gilir.

Baris gilir membolehkan anda menangguhkan tugasan yang memakan masa, seperti menghantar e-mel, ke tarikh yang akan datang. Menangguhkan tugas yang memakan masa ini boleh meningkatkan kelajuan tindak balas permintaan web dengan ketara.

Kebaikan

  • Penyahgandingan: Barisan mesej boleh memisahkan sistem dan meningkatkan kelajuan tindak balas diagregatkan ke dalam dan terbuka ke luar;

  • Asynchronous: Baris gilir mesej boleh menanggalkan fungsi tak segerak sistem, mengurangkan gandingan berfungsi dan meningkatkan kecekapan pembangunan; >

    Keratan puncak: Baris gilir mesej boleh menggunting puncak dan aliran untuk memastikan operasi pengguna hiliran yang stabil;
3

Fail konfigurasi baris gilir disimpan dalam config/queue.php. Dalam fail ini, anda boleh menemui konfigurasi sambungan untuk setiap pemacu baris gilir yang disertakan dalam rangka kerja, yang termasuk pangkalan data, Beanstalkd, Amazon SQS, Redis dan pemacu penyegerakan (segerak - untuk kegunaan tempatan). Redis digunakan sebagai pemacu di sini, dan Redis serta sambungan yang berkaitan perlu dipasang.

4. Tugas

Kita perlu meletakkan sesuatu ke dalam baris gilir, kita boleh memanggilnya sebagai tugas. Mencipta tugasan dalam rangka kerja Laravel memberikan kita arahan berikut:

TestJob.php

php artisan make:job TestJob
Salin selepas log masuk

5 🎜 >

namespace App\Jobs;use Illuminate\Bus\Queueable;use Illuminate\Contracts\Queue\ShouldBeUnique;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate\Foundation\Bus\Dispatchable;use Illuminate\Queue\InteractsWithQueue;use Illuminate\Queue\SerializesModels;use Illuminate\Support\Facades\DB;use Symfony\Polyfill\Intl\Idn\Info;class TestJob implements ShouldQueue{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {//        \Log::info('hhh');
        DB::connection('test')
            ->table('master')
            ->insert([
                'name'=>'小白',
                'email'=>'123@qq.com'
            ]);
    }}
Salin selepas log masuk

Setelah anda menulis kelas tugasan, anda boleh menghantarnya menggunakan kaedah penghantaran tugas itu sendiri. Parameter yang dihantar kepada kaedah penghantaran akan dihantar kepada pembina tugas. onQueue:   Nyatakan baris gilir; onConnection:  Nyatakan sambungan; 🎜>

Jalankan laluan ini dua kali dan anda dapat melihat bahawa baris gilir bernama qq dijana Kemudian kami menggunakan baris gilir




6. Penggunaan baris gilir

<🎜. >
Laravel mempunyai pemproses baris gilir untuk memproses tugasan yang baru ditolak ke dalam baris gilir. Mulakan pemproses baris gilir dengan baris perintah Artisan: kerja. Perlu diingat bahawa sebaik sahaja arahan baris gilir:kerja dimulakan, ia akan terus berjalan sehingga ia dihentikan secara manual atau anda menutup terminal anda:
#在路由中简单调用
Route::get(&#39;queue&#39;,function(){
        \App\Jobs\TestJob::dispatch();
//        \App\Jobs\TestJob::dispatch()->onQueue(&#39;qq&#39;);
    });
Salin selepas log masuk

php artisan queue:work

php artisan queue: berfungsi --sekali Tambah parameter dan gunakan baris gilir yang ditentukan Apakah giliran laravel

Anda boleh melihat bahawa dua keping data baharu ditambahkan pada pangkalan data dan data dalam redis digunakan


Kami melaksanakan penghalaan sekali lagi
#消费qq队列
php artisan queue:work --queue=qq
Salin selepas log masuk

Apakah giliran laravel

7 >

Apakah giliran laravel

Baris gilir biasanya digunakan untuk mengendalikan tugasan tertangguh dan acara diproses mengikut logik perniagaan. Pencetus peristiwa dalam Laravel diedarkan kepada baris gilir untuk pemprosesan perniagaan tak segerak, supaya anda boleh bertindak balas dengan cepat tanpa perlu menunggu hasil pelaksanaan dalam masa nyata sebelum memberikan mesej segera kepada pengguna.

Jika kami perlu menyimpan perniagaan dalam acara ke dalam baris gilir, kami tidak perlu mengagihkan semula baris gilir Kami boleh melaksanakan antara muka IlluminateContractsQueueShouldQueue dalam pendengar yang sepadan.

Buat acara dan pendengarApakah giliran laravel

Daftar dalam appprovidersEventServiceProvider.php

TestListener.php


>Ubah suai laluan

php artisan make:event TestEvent
php artisan make:listener TestListener
Salin selepas log masuk

Jalankan laluan

Apakah giliran laravel

Baris gilir penggunaan

namespace App\Listeners;

use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\DB;

class TestListener implements ShouldQueue
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  object  $event
     * @return void
     */
    public function handle()
    {
        DB::connection(&#39;test&#39;)
            ->table(&#39;master&#39;)
            ->insert([
                &#39;name&#39;=>&#39;小黑&#39;,
                &#39;email&#39;=>&#39;234@qq.com&#39;
            ]);
    }
}
Salin selepas log masuk

Route::get(&#39;queue&#39;,function(){
        //\App\Jobs\TestJob::dispatch();
        //指定队列名称
        //\App\Jobs\TestJob::dispatch()->onQueue(&#39;qq&#39;);
        return event(new \App\Events\TestEvent());
    });
Salin selepas log masuk

[Cadangan berkaitan: tutorial video laravel]

Atas ialah kandungan terperinci Apakah giliran laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menggunakan pemetaan hubungan objek (ORM) dalam PHP untuk memudahkan operasi pangkalan data? Bagaimana untuk menggunakan pemetaan hubungan objek (ORM) dalam PHP untuk memudahkan operasi pangkalan data? May 07, 2024 am 08:39 AM

Operasi pangkalan data dalam PHP dipermudahkan menggunakan ORM, yang memetakan objek ke dalam pangkalan data hubungan. EloquentORM dalam Laravel membolehkan anda berinteraksi dengan pangkalan data menggunakan sintaks berorientasikan objek Anda boleh menggunakan ORM dengan mentakrifkan kelas model, menggunakan kaedah Eloquent atau membina sistem blog dalam amalan.

Perbandingan versi terkini Laravel dan CodeIgniter Perbandingan versi terkini Laravel dan CodeIgniter Jun 05, 2024 pm 05:29 PM

Versi terkini Laravel 9 dan CodeIgniter 4 menyediakan ciri dan penambahbaikan yang dikemas kini. Laravel9 menggunakan seni bina MVC dan menyediakan fungsi seperti migrasi pangkalan data, pengesahan dan enjin templat. CodeIgniter4 menggunakan seni bina HMVC untuk menyediakan penghalaan, ORM dan caching. Dari segi prestasi, corak reka bentuk berasaskan pembekal perkhidmatan Laravel9 dan rangka kerja ringan CodeIgniter4 memberikannya prestasi cemerlang. Dalam aplikasi praktikal, Laravel9 sesuai untuk projek kompleks yang memerlukan fleksibiliti dan fungsi berkuasa, manakala CodeIgniter4 sesuai untuk pembangunan pesat dan aplikasi kecil.

Laravel - Perintah Artisan Laravel - Perintah Artisan Aug 27, 2024 am 10:51 AM

Laravel - Perintah Artisan - Laravel 5.7 hadir dengan cara baharu untuk merawat dan menguji arahan baharu. Ia termasuk ciri baharu untuk menguji arahan artisan dan demonstrasi disebut di bawah?

Bagaimanakah keupayaan pemprosesan data dalam Laravel dan CodeIgniter dibandingkan? Bagaimanakah keupayaan pemprosesan data dalam Laravel dan CodeIgniter dibandingkan? Jun 01, 2024 pm 01:34 PM

Bandingkan keupayaan pemprosesan data Laravel dan CodeIgniter: ORM: Laravel menggunakan EloquentORM, yang menyediakan pemetaan hubungan kelas-objek, manakala CodeIgniter menggunakan ActiveRecord untuk mewakili model pangkalan data sebagai subkelas kelas PHP. Pembina pertanyaan: Laravel mempunyai API pertanyaan berantai yang fleksibel, manakala pembina pertanyaan CodeIgniter lebih ringkas dan berasaskan tatasusunan. Pengesahan data: Laravel menyediakan kelas Pengesah yang menyokong peraturan pengesahan tersuai, manakala CodeIgniter mempunyai kurang fungsi pengesahan terbina dalam dan memerlukan pengekodan manual peraturan tersuai. Kes praktikal: Contoh pendaftaran pengguna menunjukkan Lar

Laravel vs CodeIgniter: Rangka kerja manakah yang lebih baik untuk projek besar? Laravel vs CodeIgniter: Rangka kerja manakah yang lebih baik untuk projek besar? Jun 04, 2024 am 09:09 AM

Apabila memilih rangka kerja untuk projek besar, Laravel dan CodeIgniter masing-masing mempunyai kelebihan mereka sendiri. Laravel direka untuk aplikasi peringkat perusahaan, menawarkan reka bentuk modular, suntikan pergantungan dan set ciri yang berkuasa. CodeIgniter ialah rangka kerja ringan yang lebih sesuai untuk projek kecil hingga sederhana, menekankan kelajuan dan kemudahan penggunaan. Untuk projek besar dengan keperluan yang kompleks dan bilangan pengguna yang ramai, kuasa dan kebolehskalaan Laravel adalah lebih sesuai. Untuk projek atau situasi mudah dengan sumber terhad, keupayaan pembangunan CodeIgniter yang ringan dan pantas adalah lebih ideal.

Mana satu yang lebih mesra pemula, Laravel atau CodeIgniter? Mana satu yang lebih mesra pemula, Laravel atau CodeIgniter? Jun 05, 2024 pm 07:50 PM

Untuk pemula, CodeIgniter mempunyai keluk pembelajaran yang lebih lembut dan ciri yang lebih sedikit, tetapi meliputi keperluan asas. Laravel menawarkan set ciri yang lebih luas tetapi mempunyai keluk pembelajaran yang lebih curam. Dari segi prestasi, kedua-dua Laravel dan CodeIgniter berprestasi baik. Laravel mempunyai dokumentasi yang lebih luas dan sokongan komuniti yang aktif, manakala CodeIgniter lebih ringkas, ringan dan mempunyai ciri keselamatan yang kukuh. Dalam kes praktikal membina aplikasi blog, EloquentORM Laravel memudahkan manipulasi data, manakala CodeIgniter memerlukan lebih banyak konfigurasi manual.

Ujian unit kod PHP dan ujian integrasi Ujian unit kod PHP dan ujian integrasi May 07, 2024 am 08:00 AM

Unit PHP dan Panduan Pengujian Penyepaduan Pengujian Unit: Fokus pada satu unit kod atau fungsi dan gunakan PHPUnit untuk mencipta kelas kes ujian untuk pengesahan. Ujian integrasi: Beri perhatian kepada cara berbilang unit kod berfungsi bersama, dan gunakan kaedah setUp() dan tearDown() PHPUnit untuk menyediakan dan membersihkan persekitaran ujian. Kes praktikal: Gunakan PHPUnit untuk melaksanakan ujian unit dan penyepaduan dalam aplikasi Laravel, termasuk mencipta pangkalan data, memulakan pelayan dan menulis kod ujian.

Soalan dan Jawapan mengenai Reka Bentuk Seni Bina Perkhidmatan Mikro Aplikasi PHP Enterprise Soalan dan Jawapan mengenai Reka Bentuk Seni Bina Perkhidmatan Mikro Aplikasi PHP Enterprise May 07, 2024 am 09:36 AM

Seni bina perkhidmatan mikro menggunakan rangka kerja PHP (seperti Symfony dan Laravel) untuk melaksanakan perkhidmatan mikro dan mengikut prinsip RESTful dan format data standard untuk mereka bentuk API. Perkhidmatan mikro berkomunikasi melalui baris gilir mesej, permintaan HTTP atau gRPC dan menggunakan alatan seperti Prometheus dan ELKStack untuk pemantauan dan penyelesaian masalah.

See all articles