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