Rumah > rangka kerja php > Laravel > Bagaimana untuk mengkonfigurasi dan menggunakan baris gilir dalam laravel

Bagaimana untuk mengkonfigurasi dan menggunakan baris gilir dalam laravel

PHPz
Lepaskan: 2023-04-03 19:20:00
asal
1987 orang telah melayarinya

Laravel ialah rangka kerja PHP sumber terbuka popular yang menyediakan satu siri alatan dan ciri berkuasa untuk membantu pembangun membina aplikasi web berkualiti tinggi dengan cepat.

Baris gilir ialah fungsi yang sangat penting dan biasa digunakan dalam rangka kerja Laravel. Ia membolehkan anda beratur beberapa tugasan yang memakan masa dan kemudian melaksanakannya secara tidak segerak, yang boleh meningkatkan prestasi dan kebolehpercayaan aplikasi web anda. Dalam artikel ini, kami akan meneroka cara menggunakan baris gilir dalam rangka kerja Laravel.

1. Konfigurasi baris gilir Laravel

Sebelum anda mula menggunakan baris gilir, anda perlu mengkonfigurasi baris gilir Laravel. Dalam Laravel 5.1 dan ke atas, anda boleh menggunakan perintah artisan untuk menjana fail konfigurasi baris gilir:

php artisan queue:table

php artisan migrate
Salin selepas log masuk

Kod di atas akan menjana jadual data pekerjaan, yang digunakan untuk menyimpan maklumat tentang tugas baris gilir. Selain itu, Laravel membolehkan anda menggunakan pelbagai pemacu baris gilir, termasuk pangkalan data, Redis, Amazon SQS dan banyak lagi. Anda boleh menggunakan fail konfigurasi untuk menetapkan pemacu baris gilir yang diperlukan, contohnya:

'default' => env('QUEUE_DRIVER', 'mysql'),

'connections' => [
        
        'mysql' => [
            'driver' => 'mysql',
            'host'   => env('DB_HOST', 'localhost'),
            'queue' => 'default',
            'table' => 'jobs',
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'database' => env('DB_DATABASE', 'forge'),
            'prefix' => '',
        ],

        'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
            'queue' => 'default',
            'expire' => 60,
        ],

        'sqs' => [
            'driver' => 'sqs',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'prefix' => env('AWS_SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
            'queue' => env('AWS_SQS_QUEUE', 'default'),
            'region' => env('AWS_REGION', 'us-east-1'),
        ],
],
Salin selepas log masuk

2. Buat tugas baris gilir

Dengan konfigurasi baris gilir Laravel, anda boleh mula membuat tugas baris gilir . Dalam Laravel, setiap tugas baris gilir mestilah kelas boleh bersiri, yang boleh ditakrifkan dengan melaksanakan antara muka IlluminateContractsQueueShouldQueue. Contohnya:

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

class SendEmail implements ShouldQueue
{
    use InteractsWithQueue, Queueable, SerializesModels;

    protected $user;
    protected $content;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(User $user, $content)
    {
        $this->user = $user;
        $this->content = $content;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        // 发送邮件给用户
        Mail::to($this->user)->send(new WelcomeMail($this->content));
    }
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan kelas tugas baris gilir bernama SendEmail, yang menerima pengguna dan rentetan kandungan e-mel dalam pembina. Kelas ini melaksanakan antara muka ShouldQueue, jadi Laravel tahu bahawa tugas itu harus ditambah pada baris gilir dan bukannya dilaksanakan terus dalam permintaan semasa.

3. Tolak tugas baris gilir

Selepas anda membuat tugas baris gilir, langkah seterusnya ialah menolak tugasan ke baris gilir. Dalam Laravel anda boleh melakukan ini dengan menggunakan fasad Queue. Contohnya:

use Illuminate\Support\Facades\Queue;

$user = User::find(1);
$content = '欢迎加入我们的网站!';

Queue::push(new SendEmail($user, $content));
Salin selepas log masuk

Dalam kod di atas, kami menggunakan fasad Gilir untuk menolak tugas SendEmail ke baris gilir. Apabila tugasan diproses, e-mel alu-aluan dihantar kepada pengguna.

4. Laksanakan tugasan gilir

Sekarang kita telah menolak tugasan ke baris gilir, soalan seterusnya ialah bagaimana untuk melaksanakan tugasan itu. Dalam Laravel, melaksanakan tugas baris gilir adalah sangat mudah. Anda hanya perlu menjalankan perintah artisan berikut:

php artisan queue:work
Salin selepas log masuk

Perintah ini akan memulakan pendengar yang akan mendengar tugas baris gilir dan melaksanakannya mengikut tertib. Selepas pemprosesan tugas baris gilir selesai, pendengar akan berhenti secara automatik.

Selain memulakan pendengar dengan cara ini, Laravel juga menyediakan cara lain untuk melaksanakan tugas baris gilir, iaitu menggunakan pelayan mesej baris gilir. Contohnya, apabila menggunakan pemacu baris gilir Redis, anda boleh menggunakan arahan berikut untuk memulakan pelayan mesej baris gilir:

php artisan queue:listen redis
Salin selepas log masuk

Perintah ini akan memulakan pendengar baris gilir yang akan mendengar baris gilir Redis dan melaksanakan tugas baris gilir mengikut urutan.

5. Pantau tugas baris gilir

Akhir sekali, Laravel juga menyediakan satu set alat berkuasa untuk memantau pelaksanaan tugas baris gilir. Anda boleh menggunakan arahan berikut untuk melihat tugasan dalam baris gilir semasa:

php artisan queue:work --status
Salin selepas log masuk

Arahan ini akan memaparkan semua tugas dalam baris gilir semasa dan memberikan ID tugasan, baris gilir, status dan maklumat lain.

Selain itu, Laravel juga menyediakan set lengkap alat pemantauan dan pengurusan baris gilir. Anda boleh menggunakan Laravel Horizon atau Laravel Telescope untuk memantau pelaksanaan tugas baris gilir Alat ini boleh memberikan hasil pelaksanaan tugas masa nyata, maklumat statistik, pengendalian pengecualian lengkap dan fungsi lain.

Ringkasan

Pada ketika ini, kami telah menguasai penggunaan asas baris gilir Laravel. Menggunakan baris gilir boleh meningkatkan prestasi dan kebolehpercayaan aplikasi web anda, terutamanya apabila anda perlu melakukan beberapa tugas yang memakan masa. Jika anda sedang membangunkan aplikasi Laravel dan ingin mengoptimumkan prestasinya, menggunakan baris gilir ialah alat yang anda tidak boleh ketinggalan.

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi dan menggunakan baris gilir 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