Rumah > rangka kerja php > Laravel > teks badan

Berapa kerapkah baris gilir digunakan dalam laravel?

PHPz
Lepaskan: 2023-05-29 10:09:37
asal
741 orang telah melayarinya

Laravel ialah rangka kerja pembangunan PHP yang popular. Sistem baris gilirnya membolehkan kami mengendalikan beberapa tugas tak segerak, seperti menghantar e-mel, menjana laporan, dsb. Bagi kekerapan penggunaan baris gilir, ini adalah isu yang sangat praktikal dan juga menjadi kebimbangan ramai pembangun.

Pertama sekali, adalah penting untuk memahami prinsip asas baris gilir Laravel. Sistem baris gilir Laravel adalah berdasarkan baris gilir mesej Ia meletakkan tugasan yang perlu diproses ke dalam baris gilir dan kemudian memproses tugasan ini melalui proses tak segerak. Dalam proses ini, kita boleh memilih perkhidmatan baris gilir mesej untuk tugas itu, seperti Redis, RabbitMQ, dsb., dengan mengkonfigurasi "penyambung" baris gilir.

Jadi, bagaimanakah kekerapan penggunaan baris gilir dikawal?

Secara lalai, baris gilir Laravel akan terus meninjau tugas dalam baris gilir dan melaksanakannya apabila melaksanakan perintah php artisan queue:work. Selang pengundian ini, lalai Laravel ialah 3 saat.

Sebenarnya, selang pengundian ini boleh dikawal dengan menetapkan masa tidur proses pekerja beratur. Masa tidur ini boleh ditetapkan dalam fail konfigurasi aplikasi baris gilir, contohnya, ditetapkan dalam .env:

QUEUE_TIMEOUT=30
Salin selepas log masuk

dan selang masa ini dipanggil "masa tunggu giliran" dalam Laravel.

Ini bermakna selepas setiap pemprosesan tugasan selesai, proses pekerja barisan akan tidur selama 30 saat, dan kemudian semak semula sama ada terdapat tugasan yang belum selesai dalam baris gilir.

Secara khusus, jika kami mentakrifkan tugas baris gilir berikut dalam Laravel:

<?php
namespace AppJobs;

use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateFoundationBusDispatchable;
use IlluminateQueueInteractsWithQueue;
use IlluminateQueueSerializesModels;

class ProcessPodcast 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()
    {
        //
    }
}
Salin selepas log masuk

Secara lalai, tugas baris gilir ini akan dilaksanakan setiap 3 saat dalam baris gilir Laravel sehingga Tugasan selesai.

Jika kita perlu mengubah suai kekerapan penggunaan baris gilir, kita boleh melepasi parameter masa kelewatan semasa membuat tugas giliran:

ProcessPodcast::dispatch()->delay(now()->addMinutes(5));
Salin selepas log masuk

Kesan daripada ini ialah tugas giliran akan selesai selepas 5 minit Tambah pada baris gilir dan bukannya memulakan pelaksanaan serta-merta.

Selain itu, apabila menggunakan baris gilir untuk memproses tugas, anda juga perlu memberi perhatian kepada beberapa perkara, seperti situasi kegagalan pemprosesan, julat baris gilir, dsb. Masalah ini memerlukan kami pembangun untuk menyelesaikannya satu persatu.

Ringkasnya, baris gilir Laravel ialah alat pemprosesan tugas tak segerak yang mudah dan cekap Kami boleh mengawal kekerapan penggunaannya dengan menetapkan tamat masa, kelewatan dan cara lain. Pada masa yang sama, dalam aplikasi praktikal, kita juga perlu memberi perhatian kepada isu seperti kegagalan pemprosesan baris gilir.

Atas ialah kandungan terperinci Berapa kerapkah baris gilir digunakan dalam laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!