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

池州市网站建设优化商城小程序开发哪家好

池州市网站建设优化,商城小程序开发哪家好,东莞财务公司代注册公司,外贸网站建设服务器Hyperf连接使用RabbitMQ消息中间件 传送门 使用Docker部署RabbitMQ&#xff0c;->传送门<使用Docker部署Hyperf&#xff0c;->传送门-< 部署环境 安装amqp扩展 composer require hyperf/amqp安装command命令行扩展 composer require hyperf/command配置参数 假…

Hyperf连接使用RabbitMQ消息中间件

传送门

  1. 使用Docker部署RabbitMQ,->传送门<
  2. 使用Docker部署Hyperf,->传送门-<

部署环境

安装amqp扩展

composer require hyperf/amqp

安装command命令行扩展

composer require hyperf/command

配置参数

假设已经在rabbitmq设置了交换机exchange_test和队列queue_test

新建 /config/autoload/amp.php配置文件,修改地址和用户名密码

<?php
return ['default' => ['host' => '127.0.0.1',//rabbitmq服务的地址'port' => 5672,'user' => 'user','password' => '123456','vhost' => '/','concurrent' => ['limit' => 1,],'pool' => ['connections' => 1,],'params' => ['insist' => false,'login_method' => 'AMQPLAIN','login_response' => null,'locale' => 'en_US','connection_timeout' => 3.0,'read_write_timeout' => 6.0,'context' => null,'keepalive' => false,'heartbeat' => 3,'close_on_destruct' => false,],],'pool2' => [...]
];

生产数据

创建生产者中间件

php bin/hyperf.php gen:amqp-producer DemoProducer

exchange是交换机,routingKey是队列名

<?php
declare(strict_types=1);
namespace App\Amqp\Producers;
use Hyperf\Amqp\Annotation\Producer;
use Hyperf\Amqp\Message\ProducerMessage;#[Producer(exchange: "exchange_test", routingKey: "queue_test")]
class DemoProducer extends ProducerMessage
{public function __construct($data){//将收到的数据加入队列$this->plyload = $data;}
}

创建生产者脚本

php bin/hyperf.php gen:command FooCommand

代码

<?php
declare(strict_types=1);
namespace App\Command;
use Hyperf\Command\Command as HyperfCommand;
use Hyperf\Command\Annotation\Command;
use Hyperf\Amqp\Producer;
use App\Amqp\Producers\DemoProducer;
use Hyperf\Utils\ApplicationContext;/*** @Command*/
class FooCommand extends HyperfCommand
{/*** 执行的命令行** @var string*/protected $name = 'foo:command';public function handle(){//协程代码,创建1000个协程分别处理$wg = new \Hyperf\Utils\WaitGroup();$wg->add(1000);// 计数器加1000for($i=0;$i<1000;$i++){// 创建协程$ico(function () use ($wg) {//amqp代码,将数据加入生产者队列$message = new DemoProducer(['id'=>$i]);$producer = ApplicationContext::getContainer()->get(Producer::class);$result = $producer->produce($message);					    // 计数器减一$wg->done();});}// 等待所有协程运行完成$wg->wait();}
}

调用命令行,来生产数据

php bin/hyperf.php foo:command

至此,进入rabbitmq后台,对应的队列里就会有数据。

消费数据

创建消费者中间件

php bin/hyperf.php gen:amqp-consumer DemoConsumer

代码解释如上,多的queue也是队列名,num是进程数

<?php
declare(strict_types=1);
namespace App\Amqp\Consumers;
use Hyperf\Amqp\Annotation\Consumer;
use Hyperf\Amqp\Message\ConsumerMessage;
use Hyperf\Amqp\Result;
use PhpAmqpLib\Message\AMQPMessage;
#[Consumer(exchange: "hyperf", routingKey: "hyperf", queue: "hyperf", nums: 1)]
class DemoConsumer extends ConsumerMessage
{public function consumeMessage($data, AMQPMessage $message): string{print_r($data);return Result::ACK;}
}

重启框架会自动调用消费者

php bin/hyperf.php start

在这里插入图片描述
原创码字不易,喜欢请收藏关注

部分参考自:https://www.bilibili.com/video/BV1de4y1E7Ya/?vd_source=36102b089bcd7ff8177499ba833633e0

http://www.shuangfujiaoyu.com/news/28559.html

相关文章:

  • wordpress form manager 下载广州seo推广运营专员
  • dw手机销售网站制作手机卡顿优化软件
  • 青岛高端网站开发公司南京百度关键字优化价格
  • 惠州做棋牌网站建设哪家便宜凡科建站登录官网
  • app资源网站开发seo网站排名优化价格
  • 网络网站建设谷歌关键词工具
  • 网站优化外链怎么做今日头条新闻
  • 深圳网站建设注册百度服务电话
  • 外贸网站推广哪家好登封网站建设公司
  • 朔州网站建设收费多少江西短视频seo搜索报价
  • web可以做3d网站吗网络营销模式下品牌推广研究
  • 北京高端网页建设桌子seo关键词
  • 杭州的互联网企业seo整站排名
  • 网站开发技术包括哪些网站建设推广专家服务
  • 做数据分析的网站广告发布平台app
  • 免费一键建站官网大全网络推广的好处
  • 石家庄哪里做微网站百度的企业网站
  • 网站怎么做图片放映效果seo职位招聘
  • 微信小程序可以做电影网站吗广告公司注册
  • 关于建设单位网站的方案百度电话号码
  • wordpress 企业邮箱指定关键词seo报价
  • php怎么给网站做spm白云百度seo公司
  • 自己做网站要多少钱网络推广自学
  • 网站安全证书过期怎么处理怎么自己弄一个平台
  • 桥头网站建设公司教你如何快速建站
  • 哪些软件属于网页制作工具外链seo服务
  • 广州优化公司推广如何进行搜索引擎优化?
  • 用java做网页如何建立网站北京全网推广
  • 南通网站制作宁波seo推广定制
  • 做网站批发利润怎么样磁力搜索引擎不死鸟