Rumah > rangka kerja php > Laravel > teks badan

Terokai cara melaraskan tugas (Pekerjaan) dalam projek Laravel

PHPz
Lepaskan: 2023-04-14 09:38:35
asal
1325 orang telah melayarinya

Dalam Laravel, tugas (Pekerjaan) ialah mekanisme untuk mengendalikan tugas tak segerak. Laravel menyediakan pelbagai fungsi pemprosesan tugas (Pekerjaan), yang boleh menyediakan tugas (Pekerjaan) dengan mudah untuk dijalankan secara tak segerak di latar belakang, membolehkan aplikasi anda bertindak balas kepada permintaan dengan cepat dan memproses tugas dengan cekap.

Artikel ini akan meneroka cara melaraskan tugas (Pekerjaan) dalam aplikasi Laravel, termasuk cara mentakrifkan tugas (Pekerjaan) dan cara mengkonfigurasi, menggunakan dan mengurus tugas (Pekerjaan).

Mentakrifkan tugas (Pekerjaan)

Sangat mudah untuk menentukan tugas (Pekerjaan) dalam Laravel. Mula-mula, cipta kelas tugas (Pekerjaan) baharu dan letakkan kod pemprosesan tugas dalam kaedah handle:

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class ProcessPodcast implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public function handle()
    {
        // 处理任务的代码
    }
}
Salin selepas log masuk

Dalam kod di atas, kami mencipta kelas tugas bernama ProcessPodcast , yang mewarisi daripada ShouldQueue antara muka, menunjukkan bahawa ini adalah tugas yang perlu diproses dalam baris gilir. Kelas ini juga menggunakan ciri Dispatchable Laravel, yang membolehkan kami menolak tugasan ke dalam sistem baris gilir Laravel menggunakan kaedah dispatch.

Selain kaedah handle(), kelas tugas (Pekerjaan) juga boleh menggunakan kaedah dan fungsi lain yang disediakan oleh Laravel, seperti kaedah before() dan after(), yang digunakan pada permulaan dan tamat tugas (Pekerjaan) Cetuskan tindakan tertentu. Selain itu, anda boleh menggunakan Penyambung Gilir untuk menyambungkan baris gilir dan perkhidmatan baris gilir yang berbeza.

Mengkonfigurasi Pemacu Gilir

Laravel menyokong menggunakan pemacu baris gilir yang berbeza untuk mengurus dan menjalankan baris gilir tugas (Pekerjaan). Secara lalai, Laravel menggunakan pemacu sync, yang melaksanakan tugas secara serentak dan mengembalikan hasil apabila tugasan selesai.

Untuk mengkonfigurasi pemacu baris gilir, anda perlu menentukan pemacu yang ingin anda gunakan dalam fail konfigurasi Laravel config/queue.php. Contohnya, untuk menggunakan pemacu Redis, anda boleh menambah kod berikut pada fail config/queue.php:

&#39;connections&#39; => [
    // ...
    'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => env('REDIS_QUEUE', 'default'),
        'retry_after' => 90,
        'block_for' => null,
    ],
    // ...
],
Salin selepas log masuk

Dalam kod di atas, kami mengkonfigurasi pemacu gilir Redis untuk menggunakan sambungan lalai, menamakan baris gilir ialah default dan menetapkan beberapa sifat baris gilir, seperti selang percubaan semula dan masa menyekat maksimum.

Menolak tugas (Pekerjaan) ke baris gilir

Setelah anda menentukan tugas (Pekerjaan), anda boleh menggunakan kaedah dispatch() untuk menolak tugasan ke Laravel tengah sistem giliran. Contohnya:

ProcessPodcast::dispatch($podcast);
Salin selepas log masuk

Dalam kod di atas, kami menghantar pembolehubah $podcast sebagai parameter kepada pembina kelas Jobs, dan kemudian gunakan kaedah dispatch() untuk menolak kerja ke baris gilir .

Apabila anda menolak kerja ke baris gilir, Laravel akan menyerikan kelas tugas, parameter pembina dan sebarang data lain yang diperlukan ke dalam rentetan. Rentetan itu kemudiannya dihantar ke baris gilir dan akhirnya dibawa keluar untuk pelaksanaan secara tak segerak di latar belakang.

Mendengar dan menyahpepijat baris gilir

Sebaik sahaja anda menolak kerja ke baris gilir, anda boleh menggunakan Pendengar Baris Gilir Laravel untuk mendengar baris gilir dan tugasan Proses. Daripada baris arahan, anda boleh menggunakan perintah php artisan queue:listen untuk memulakan pendengar baris gilir. Contohnya:

php artisan queue:listen redis --queue=default
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan redis pemandu baris gilir dan namakan baris gilir default . Perintah ini akan memulakan pendengar menunggu tugasan dalam baris gilir. Pendengar ini akan bertanggungjawab untuk mengalih keluar kerja daripada baris gilir dan melaksanakannya sebaik sahaja kerja tersedia.

Anda juga boleh menggunakan Penjadual Baris Gilir dalam aplikasi Laravel anda untuk melaksanakan tugas seperti yang dijadualkan. Penjadual baris gilir ialah mekanisme yang secara automatik melaksanakan tugas dalam masa yang ditentukan. Untuk memasang penjadual baris gilir, anda perlu mentakrifkan kerja (Pekerjaan) yang ingin anda laksanakan dalam penjadual aplikasi anda (Penjadual) dan menggunakannya dengan sistem baris gilir. Setelah dikonfigurasikan, penjadual baris gilir akan secara automatik menolak kerja (Pekerjaan) ke baris gilir dalam selang masa yang ditentukan.

Ringkasan

Mengkonfigurasi dan mengurus pekerjaan (Pekerjaan) dalam aplikasi Laravel ialah mekanisme yang agak mudah dan praktikal. Artikel ini menerangkan cara untuk mentakrifkan tugas (Pekerjaan), mengkonfigurasi pemacu baris gilir dan menggunakan pendengar baris gilir dan penjadual baris gilir untuk memproses tugas. Dengan menggunakan ciri pemprosesan kerja Laravel, anda boleh membiarkan aplikasi anda mengendalikan tugas di latar belakang dan mencapai prestasi yang lebih tinggi serta pengalaman pengguna yang lebih baik.

Atas ialah kandungan terperinci Terokai cara melaraskan tugas (Pekerjaan) dalam projek 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