当前位置: 首页 > news >正文

网站做二级目录跟二级域名的区别高中作文网官网

网站做二级目录跟二级域名的区别,高中作文网官网,手机网站漂浮怎么做,网站关键字让别人做超链接了怎么办前言 今天我们来做个小试验#xff0c;用PHP和RabbitMQ实现消息队列的延迟功能。 前期准备#xff0c;需要安装好docker、docker-compose的运行环境。 需要安装RabbitMQ的可以看下面这篇文章。 如何使用PHP和RabbitMQ实现消息队列#xff1f;-CSDN博客 一、安装RabbitM…前言 今天我们来做个小试验用PHP和RabbitMQ实现消息队列的延迟功能。 前期准备需要安装好docker、docker-compose的运行环境。 需要安装RabbitMQ的可以看下面这篇文章。 如何使用PHP和RabbitMQ实现消息队列-CSDN博客 一、安装RabbitMQ延迟插件 1、打开rabbitmq插件官网。 地址如下Community Plugins | RabbitMQ 找到对应的延迟插件rabbitmq_delayed_message_exchange如下图所示。 2、进入RabbitMQ容器下载对应插件执行如下命令。 docker exec -ti rabbitmq bash cd /opt/rabbitmq/plugins/ wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.9.0/rabbitmq_delayed_message_exchange-3.9.0.ez 如下图所示找到自己RabbitMQ对应的版本下载.ez文件。 3、启用插件执行如下命令。 rabbitmq-plugins enable rabbitmq_delayed_message_exchange 4、重启RabbitMQ服务。 5、检查RabbitMQ已启用哪些插件执行如下命令。 rabbitmq-plugins list -e 正常会返回如下内容。 上图说明延迟插件已启用。 6、至此RabbitMQ的延迟插件已安装完成。 二、安装php-amqplib 1、安装php composer执行如下命令。 curl -sS https://getcomposer.org/installer | php -- --install-dir/usr/local/bin --filenamecomposer 2、编写composer.json内容如下这里下载php-amqplib的版本是3.6。 vim composer.json {require: {php-amqplib/php-amqplib: 3.6.*} } 3、下载包执行如下命令。 composer install 正常情况下安装完成的话当前目录会多一个vendor目录如下图所示。 4、至此php-amqplib已安装完成。 三、测试验证 1、编写生产者代码内容如下。 vim producer.php ?php require_once __DIR__ . /vendor/autoload.php; use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage;// 连接到RabbitMQ服务器 $connection new AMQPStreamConnection(rabbitmq, 5672, guest, guest); $channel $connection-channel();// 声明一个具有延迟插件的自定义交换机 $args new \PhpAmqpLib\Wire\AMQPTable([x-delayed-type \PhpAmqpLib\Exchange\AMQPExchangeType::FANOUT // 这里假设我们使用 direct 类型的交换机 ]); $channel-exchange_declare(delayed_exchange, x-delayed-message, false, true, false, false, false, $args);$messageBody Hello Max!; $delay 5000; // 延迟5秒单位是毫秒 $headers new \PhpAmqpLib\Wire\AMQPTable([x-delay $delay]); $message new AMQPMessage($messageBody, [delivery_mode 2]); $message-set(application_headers, $headers);// 发布消息到交换机 $channel-basic_publish($message, delayed_exchange, delayed_key);echo Sent {$messageBody} with delay {$delay}ms\n; $datetime date(Y/m/d H:i:s); echo 成功发送延迟消息 : {$messageBody} , {$datetime} \n;// 关闭连接 $channel-close(); $connection-close(); 2、编写消费者代码内容如下。 vim consumer.php ?php require_once __DIR__ . /vendor/autoload.php; use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage;// 连接到RabbitMQ服务器 $connection new AMQPStreamConnection(rabbitmq, 5672, guest, guest); $channel $connection-channel();// 声明一个具有延迟插件的自定义交换机 $args new \PhpAmqpLib\Wire\AMQPTable([x-delayed-type \PhpAmqpLib\Exchange\AMQPExchangeType::FANOUT // 这里假设我们使用 direct 类型的交换机 ]); $channel-exchange_declare(delayed_exchange, x-delayed-message, false, true, false, false, false, $args);// 声明延迟队列 $channel-queue_declare(delayed_queue, false, true, false, false);// 绑定队列到交换机 $channel-queue_bind(delayed_queue, delayed_exchange, delayed_key);echo 正在等待延迟队列消息, waiting... \n;$callback function (AMQPMessage $message) {//$headers $message-get(application_headers);//$nativeData $headers-getNativeData();echo $message-body . ------- . date(Y/m/d H:i:s) . \n;$message-ack(); };$channel-basic_consume(delayed_queue,,false,false,false,false,$callback );while ($channel-is_consuming()) {$channel-wait(); }// 关闭连接 $channel-close(); $connection-close(); 3、启动消费端执行如下命令。 php consumer.php 正常情况会返回如下内容等等消息。 4、运行生产端代执行如下命令。 php producer.php 正常情况会返回如下内容。 5、再看消费端接收到的消息正常返回如下内容。 从上面截图可以看出时间刚好是5秒钟。发送时间是08:44:49消费时间是08:44:54。 6、至此延迟队列的测试验证已完成。 总结 用PHP和RabbitMQ实现消息队列的延迟功能其实依靠的是RabbitMQ的一个延迟插件主要有以下几个步骤。 1、安装RabbitMQ延迟插件。 2、安装PHP的AMQP扩展、php-amqplib代码包。 3、编写生产者、消费者进行验证。 上面的代码只是做个简单的示例如果运用到实际的项目当中需要做进一步的优化。 最后因本人能力有限有什么不对的地方望各位大佬指出好让我改进多多包含谢谢大家。
http://www.zqtcl.cn/news/209769/

相关文章:

  • 移动互联和网站开发哪个好做推广便宜的网站有哪些
  • 极速网站建设定制价格微信公众号运营助手
  • .net制作网站开发教程在线修图编辑器
  • 哪些网站可以做详情页聊城高新区建设局网站
  • 湖南网站优化代运营山东建设厅证件查询网址
  • 以百度云做网站空间浙江外贸网站建设
  • 南通网站建设推广专家wordpress 信息流 主题
  • 网站培训机构有哪些大学生做企业网站
  • 网站培训班有哪些课程做的好的大学生旅行有哪些网站好
  • 昌江县住房和城乡建设局网站佛山建设网站制作
  • 做网站 图片 文件夹 放哪儿北京模板网站建设
  • 网站制作公司哪家正规注册工程公司名称大全
  • 佛山微信网站建设哪家好做电商讲师课程的网站
  • 泰州城乡建设网站深圳logo设计公司哪家好
  • 东阳网站建设yw81wordpress登录注册页面梅花
  • 网站备案 厦门福州企业网站开发
  • 全国中小企业网站域名注册服务机构
  • 微信网站怎么做下载附件wordpress 代码执行
  • 5050众筹网站开发福州餐饮网站建设
  • 北京国家建设部网站网站备案需要去哪里
  • 廊坊哪里能够做网站网站改版影响
  • 比较好的源码网站手机网站支付如何制作
  • 深圳做网站哪个公司好重庆工程造价信息2021
  • 做电商宠物带哪个网站最好最近一周的重大新闻
  • 做网站难度李沧网站建设电话
  • 六安建设网站网站图片最大尺寸是多少
  • 手机建网站步骤软件优速网站建设
  • 导购网站如何做免费推广用wordpress开发网站模板
  • 建立网站 英语wordpress字体加载
  • 株洲网站建设和制作wordpress 瑞课教育