开发场景
topic模式的生产者、消费者为一对一或一对多,多个消费者根据topic通配符匹配同时读取、消费消息队列中的相同的消息,请同时开启多个消费者并内存常驻运行,且消费模式建议为等待模式,默认为等待模式。
生产者
<?php
//引入服务器配置文件【WEB服务器运行无需实现 server服务的CLI模式运行必须实现】
include('server.ini');
//创建生产者【必须实现】
$topic_producter = new Topic_producter($v_host,$exchange,$topic);
//$v_host为Virtual host用户名
//$exchange为消息队列交换器名称
//$topic为生产者、消费者与消息队列相互匹配的通配符
//推送消息到交换器中【必须实现】
$topic_producter->push(function(){
//匿名回调函数中写你的业务
//推送消息到交换器中请return $var
});
消费者
<?php
//引入服务器配置文件【必须实现】
include('server.ini');
//创建消费者【必须实现】
$topic_consumer = new Topic_consumer($v_host,$exchange,$topic,$queue);
//$v_host为Virtual host用户名
//$exchange为消息队列交换器名称,保持与生产者一致;
//$topic为生产者、消费者与消息队列相互匹配的通配符
//$queue为消息队列名称,默认可不填写该参数,系统会自动创建临时消息队列,消费者文件进程结束后临时消息队列自动删除。如需对消息队列持久化处理,请在core/config目录下config_rabbitmq.php中配置消息队列为持久化模式并填写该参数。
//从消息队列中取消息【必须实现】
$topic_consumer->pop(function($response_data){
//匿名回调函数中写你的业务
//$response_data为读取消息队列中的数据
//读取消息后需确认成功消费消息请return true,否则读取消息后,该条消息仍然保持在消息队列中;
});