PHP中使用ActiveMQ实现消息队列

2021-11-10 17:54:37 浏览数 (1)

安装第三方扩展

代码语言:txt复制
composer require fusesource/stomp-php:2.0.*

安装完成后,目录结构如下:

测试

创建一个test.php,内容如下:

代码语言:txt复制
<?php
//引入自动加载的文件
require __DIR__.'/vendor/autoload.php'; 

use FuseSourceStompStomp;

/**
 * PHP的ActiveMQ类
 */
class ActiveMQ {

    private $conn;
	private $tcp = 'tcp://1xx.xxx.xx.xx:xxxx';
    
    /**
     * 初始化
     */
    public function __construct()
    {
        $this->conn = new Stomp($this->tcp);
        $this->conn->connect();
    }
    
    /**
     * 推送数据
     *
     * @param [type] $data
     * @param string $queue
     * @return void
     */
    public function send($queue, $data)
    {
        //将数组JSON化
        if(is_array($data)){
            $data = json_encode($data, JSON_UNESCAPED_UNICODE);
        }

        //persistent设置为true,持久化
        $result = $this->conn->send($queue, $data, ['persistent' => 'true']);   
		return $result;
    }

    /**
     * 断开链接
     */
    function __destruct()
    {
        $this->conn->disconnect();
    }
}

//测试推送
$data  = [
	'name' => '张三',
	'age'  => '18'
];

$mqModel = new ActiveMQ();
$res = $mqModel->send('test', $data);
print($res);

运行结果

查看队列的数据

0 人点赞