Rumah >rangka kerja php >ThinkPHP >Laksanakan baris gilir mesej menggunakan ThinkPHP6

Laksanakan baris gilir mesej menggunakan ThinkPHP6

PHPz
PHPzasal
2023-06-21 17:51:392890semak imbas

Dengan kemunculan Internet dan era data besar, baris gilir mesej telah menjadi bahagian yang sangat diperlukan dalam pembangunan perniagaan dan pemprosesan data. Dalam bidang PHP, rangka kerja ThinkPHP sentiasa menjadi pilihan popular di kalangan pembangun. Artikel ini akan memperkenalkan cara menggunakan ThinkPHP6 untuk melaksanakan baris gilir mesej dan memberikan anda beberapa contoh kod praktikal.

  1. Pasang sambungan baris gilir mesej

Sebelum kita mula membuat baris gilir mesej, kita perlu memasang sambungan baris gilir mesej (seperti RabbitMQ atau Beanstalkd). Artikel ini mengambil RabbitMQ sebagai contoh Berikut ialah langkah pemasangan:

1.1 Pasang Erlang

RabbitMQ dibangunkan dalam bahasa Erlang, jadi Erlang perlu dipasang terlebih dahulu.

1.2 Pasang RabbitMQ

Sebelum memasang RabbitMQ, anda perlu memasang alat wget dan gnupg. Jalankan arahan berikut dalam terminal:

sudo apt-get install wget gnupg -y

Kemudian muat turun dan pasang RabbitMQ: <.>

wget -O - "https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey" | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list <<EOF
deb https://dl.bintray.com/rabbitmq-erlang/debian buster erlang
deb https://dl.bintray.com/rabbitmq/debian buster main
EOF
sudo apt-get update -y
sudo apt-get install rabbitmq-server -y

    Buat baris gilir dan pengguna
Dalam ThinkPHP6, kita boleh menggunakan Worker (proses pekerja) untuk membuat baris gilir dan pengguna Berikut adalah langkah khusus:

2.1 Hidupkan mod Pekerja

Dalam fail app.php dalam direktori konfigurasi, cari segmen kod berikut:

    'worker' => [
        'type'  => 'socket',   // 驱动方式
        'host'  => '0.0.0.0',  // 监听地址
        'port'  => 2345,       // 监听端口
    ],

Ubah suai kepada kandungan berikut:

rreee

Di sini akan memandu Mod ditukar kepada rabbitmq, dan maklumat konfigurasi berkaitan sambungan RabbitMQ (alamat tempatan, nama pengguna, kata laluan, dll.) serta nama suis dan baris gilir ditentukan.

2.2 Cipta pengeluar mesej

Buat pengawal bernama Tugas dalam direktori apl Kaedah ini dipanggil hantar format ke Data ditolak ke baris gilir mesej.

2.3 Cipta pengguna mesej

Buat pengawal bernama Worker dalam direktori apl Kaedah ini dinamakan onMessage , Kami boleh menyesuaikan logik untuk memproses mesej yang diterima. Sebagai contoh, data boleh dihuraikan dan disimpan dalam pangkalan data, dan kemudian mesej teks atau pemberitahuan e-mel boleh dihantar kepada pengguna.

Run Worker

Selepas melengkapkan konfigurasi di atas, kita hanya perlu menjalankan arahan berikut dalam terminal untuk memulakan mod Worker:
        'worker' => [
            'type'      => 'rabbitmq',
            'host'      => 'localhost',
            'port'      => 5672,
            'user'      => 'guest',
            'password'  => 'guest',
            'vhost'     => '/',
            'exchange'  => 'test',  // 交换机名称
            'queue'     => 'test',  // 队列名称
        ],
  1. Menguji baris gilir mesej

Apabila menguji baris gilir mesej, anda boleh membuka dua terminal.
  1. Jalankan arahan berikut dalam terminal pertama untuk menolak mesej ke baris gilir:
  2. namespace appcontroller;
    
    use thinkworkerServer;
    
    class Task extends Server
    {
        public function send()
        {
            $data = ['name'=>'ThinkPHP','score'=>100];
            $this->worker->push(json_encode($data));
        }
    }
Jalankan arahan berikut dalam terminal kedua untuk melihat mesej yang diterima:

namespace appcontroller;

use thinkworkerServer;

class Worker extends Server
{
    public function onMessage($connection, $data)
    {
        // 处理逻辑
    }
}

Artikel ini memperkenalkan cara menggunakan ThinkPHP6 untuk melaksanakan baris gilir mesej. Ia boleh membantu pembangun mengendalikan pemprosesan data berskala besar, pelaksanaan tugas tak segerak, dsb. dengan lebih pantas dan meningkatkan prestasi dan kestabilan aplikasi.

Atas ialah kandungan terperinci Laksanakan baris gilir mesej menggunakan ThinkPHP6. 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