Rumah  >  Artikel  >  rangka kerja php  >  Berapa kerapkah baris gilir digunakan dalam laravel?

Berapa kerapkah baris gilir digunakan dalam laravel?

PHPz
PHPzasal
2023-05-29 10:09:37761semak imbas

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

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()
    {
        //
    }
}

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));

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!

Kenyataan:
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
Artikel sebelumnya:ralat laravel post 302Artikel seterusnya:ralat laravel post 302