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

Laksanakan baris gilir mesej menggunakan ThinkPHP6

PHPz
Lepaskan: 2023-06-21 17:51:39
asal
2888 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

    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,       // 监听端口
    ],
Salin selepas log masuk

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',  // 队列名称
        ],
    Salin selepas log masuk
  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));
        }
    }
    Salin selepas log masuk
Jalankan arahan berikut dalam terminal kedua untuk melihat mesej yang diterima:

namespace appcontroller;

use thinkworkerServer;

class Worker extends Server
{
    public function onMessage($connection, $data)
    {
        // 处理逻辑
    }
}
Salin selepas log masuk
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!

Label berkaitan:
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