Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk mengubah suai baris gilir kelewatan dalam laravel

Bagaimana untuk mengubah suai baris gilir kelewatan dalam laravel

PHPz
PHPzasal
2023-04-19 10:08:421155semak imbas

Dalam beberapa tahun kebelakangan ini, rangka kerja Laravel telah menjadi semakin popular, dan baris gilir kelewatan merupakan salah satu ciri pentingnya. Barisan gilir kelewatan boleh membantu pembangun mengurus tugas tak segerak dengan mudah dan meningkatkan prestasi aplikasi serta kebolehselenggaraan. Dalam beberapa kes khas, kita perlu mengubah suai beberapa nilai lalai baris gilir kelewatan Laravel untuk memenuhi keperluan projek tertentu. Artikel ini akan memperkenalkan cara mengubah suai parameter baris gilir kelewatan Laravel.

Baris gilir kelewatan Laravel dilaksanakan terutamanya melalui Redis atau menggunakan pangkalan data. Dalam fail konfigurasi Laravel (config/queue.php), kita boleh melihat tetapan lalai untuk baris gilir. Sebagai contoh, tamat masa lalai Laravel untuk baris gilir kelewatan ialah 60 saat (nilai lalai ditetapkan dalam tamat masa atribut) dan tetapan lalai untuk bilangan percubaan semula ialah 3 (nilai lalai ditetapkan dalam percubaan atribut). Apabila masa pemprosesan tugasan tamat atau gagal, Laravel akan secara automatik menambah tugasan pada baris gilir kelewatan seterusnya dan mengurangkan keutamaan tugas. Kami boleh menukar nilai ini dengan mengubah suai tetapan lalai, tetapi tetapan ini tidak digunakan pada baris gilir yang sudah berfungsi. Oleh itu, kita perlu mengubah suainya semasa baris gilir berjalan.

Pertama, kita perlu membuka pendengar baris gilir (baris:kerja). Apabila membuka pendengar baris gilir, kita perlu menentukan nama pekerja melalui baris arahan artisan. Contohnya, gunakan parameter command_name untuk menamakan pekerja seperti berikut:

php artisan queue:work --command_name=worker1

Nama pekerja lalai kepada "lalai". Faedah menyatakan nama pekerja pada baris arahan ialah kita boleh mengenal pasti pekerja dengan mudah dalam kod berikutnya.

Seterusnya, kita perlu menambah kelas pekerja baharu pada projek itu. Kita boleh mencipta kelas pekerja baharu dalam direktori app/Jobs dengan melaksanakan arahan berikut:

php artisan make:job MyCustomWorker

Kemudian, kita boleh menambah logik tersuai dalam kaedah pemegang kelas MyCustomWorker. Contohnya, jika kita ingin menukar masa tunda daripada 60 saat lalai kepada 120 saat, kita boleh menambah kod berikut dalam kaedah pemegang:

public function handle()
{
    $this->delay(120);
    // your custom code goes here
}

Kaedah tunda ini akan mengubah suai masa tunda tugas kepada 120 saat untuk mengatasi kelewatan lalai. Kod lain dalam kaedah pemegang akan dilaksanakan selepas kelewatan yang ditentukan.

Kami juga boleh mengubah suai bilangan percubaan semula tugasan dalam kelas pekerja. Sebagai contoh, jika kita ingin menukar bilangan percubaan semula daripada lalai 3 kali kepada 5 kali, kita boleh menambah kod berikut dalam kelas MyCustomWorker:

public function handle()
{
    $this->tries(5);
    // your custom code goes here
}

Kaedah percubaan ini akan mengubah suai bilangan percubaan semula daripada tugasan kepada 5 kali untuk mengatasi bilangan lalai percubaan semula. Kod lain dalam kaedah pemegang secara automatik akan mencuba semula bilangan kali yang ditentukan selepas tugas gagal.

Melalui langkah di atas, kami boleh mengubah suai beberapa parameter lalai baris gilir kelewatan dalam projek Laravel. Pendekatan ini boleh membantu kami mengurus tugas tak segerak dengan cara yang disesuaikan berdasarkan keperluan projek tertentu untuk meningkatkan prestasi aplikasi dan kebolehselenggaraan.

Atas ialah kandungan terperinci Bagaimana untuk mengubah suai baris gilir kelewatan 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