当前位置:   article > 正文

RabbitMQ-消息队列之work使用

rabbitmq-消息队列之work使用

1、安装rabbitmq

怎么安装rabbitmq请查看之前课程,如果已经安装,请略过此步。

2、创建vendor文件夹或是直接采用PHP框架

mkdir vendor

3、进入文件

cd vendor

4、安装php扩展

composer require php-amqplib/php-amqplib

5、进入上级创建worker文件夹

  1. cd ../
  2. mkdir worker

6、进入worker文件并创建生产者php

  1. cd worker
  2. touch pro.php

7、输入worker生产者内容

  1. <?php
  2. require_once '../vendor/autoload.php';
  3. use PhpAmqpLib\Connection\AMQPStreamConnection;
  4. use PhpAmqpLib\Message\AMQPMessage;
  5. $v_host = 'order';
  6. $queue_name = 'task_queue';
  7. $connection = new AMQPStreamConnection('localhost',5672,'wangyulong','wangyulong',$v_host);
  8. $channel = $connection->channel();
  9. $channel->queue_declare($queue_name,false,true,false,false);
  10. for($i=1;$i<=10;$i++){
  11. $data = 'this is '.$i.' message';
  12. $msg = new AMQPMessage($data,['delivery_mode'=>AMQPMessage::DELIVERY_MODE_PERSISTENT]);
  13. $channel->basic_publish($msg,'',$queue_name);
  14. }
  15. $channel->close();
  16. $connection->close();

8、创建消费者php

touch worker.php

9、输入worker消费者内容

  1. <?php
  2. require_once '../vendor/autoload.php';
  3. use PhpAmqpLib\Connection\AMQPStreamConnection;
  4. $v_host ='order';
  5. $queue_name = 'task_queue';
  6. $connection = new AMQPStreamConnection('localhost',5672,'wangyulong','wangyulong',$v_host);
  7. $channel = $connection->channel();
  8. $channel->queue_declare($queue_name,false,true,false,false);
  9. $callback = function($msg){
  10. echo 'received ',$msg->body,"\n";
  11. $msg->ack();
  12. };
  13. $channel->basic_qos(null,1,null);
  14. $channel->basic_consume($queue_name,'',false,false,false,false,$callback);
  15. while($channel->is_open()){
  16. $channel->wait();
  17. }
  18. $channel->close();
  19. $connection->close()

10、执行生产者

php pro.php

11、执行消费者

php worker.php
此时,10条数据很快就执行完毕。如果你再复制一份消费者2出来,与消费者1同时执行,这个时候你重新执行以下生产者,你会发现,消费者1的结果展示是1 3 5 7 9,消费者2的结果展示是 2 4 6 8 10。这就是rabbitmq消费者最高的硬实力
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/1015819
推荐阅读
相关标签
  

闽ICP备14008679号