| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <?php
- namespace console\controllers;
- use yii\console\Controller;
- class RabbitmqTestController extends Controller
- {
- /**
- * 消息生产者
- * @param $producerName 生产者名称 (producer.name) -- 从 config/rabbitmq.php 找
- * @param $exchangeName 交换器名称 (exchanges.name)
- * @param $routingKey 绑定路由键(bindings.routing_keys)
- * @param $status 模拟执行状态 -- 200:成功 500:失败
- *
- * 例子:
- * ./yii rabbitmq-test/publish
- * ./yii rabbitmq-test/publish producer_2 ex_1 route_1
- * ./yii rabbitmq-test/publish producer_1 topic_ex_1 route_prefix.*
- * ./yii rabbitmq-test/publish producer_1 topic_ex_1 *.route_suffix
- */
- public function actionPublish($producerName = '', $exchangeName = '', $routingKey = '', $status = 200)
- {
- if(empty($producerName)){
- $producerName = 'producer_1';
- }
- if(empty($exchangeName)){
- $exchangeName = 'ex_1';
- }
- if(empty($routingKey)){
- $routingKey = 'route_1';
- }
- $producer = \Yii::$app->rabbitmq->getProducer($producerName);
- $data = ['id' => 123, 'status' => $status, ['producer'=>$producerName, 'exchange'=>$exchangeName, 'routingKey'=>$routingKey]];
- $msg = serialize($data);
- $producer->publish($msg, $exchangeName, $routingKey);
- }
- public function actionPublishtopic()
- {
- }
- }
|