Swoole 中使用通道(Channel)实现协程间通讯(消息队列)
2023-09-14 09:12:08 时间
通道
Coroutine\Channel
使用本地内存,不同的进程之间内存是隔离的。
只能在同一进程的不同协程内进行 push
和 pop
操作。
Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]); Co\run(function(){ // 设置一个容量为1的通道 $chan = new Swoole\Coroutine\Channel(1); Swoole\Coroutine::create(function () use ($chan) { for($i = 0; $i < 100000; $i++) { co::sleep(1.0); // 向通道中写入数据,通道已满时会排队等候 $chan->push(['rand' => rand(1000, 9999), 'index' => $i]); echo "$i pushed! \n"; } }); Swoole\Coroutine::create(function () use ($chan) { while(1) { $data = $chan->pop(); var_dump($data); } }); });
https://www.cnblogs.com/danhuang/p/13267888.html
相关文章
- 【说站】php消息队列的介绍
- 译文:重磅消息 - Istio 引入 Ambient Mesh 模式
- 16-RabbitMQ高级特性-消费端的消息ACK与重回队列
- 关于MQ的几件小事(二)如何保证消息队列的高可用
- 手把手实现一条延时消息
- EasyWechat 4.x 微信小程序订阅消息
- 微服务学习计划——消息队列
- WPF 编写一个测试 WM_TOUCH 触摸消息延迟的应用
- Redis实现消息的发布订阅原理分析
- MQ发送消息到队列的Java代码详解编程语言
- 深入浅出:Linux 消息队列机制(linux消息队列机制)
- 老司机带你攻破微信消息防撤回功能
- 搭建企业级消息队列系统:实践Oracle MQ技术(oraclemq)
- Redis:高效稳定的消息队列工具(redis作为消息队列)
- 一秒获取消息数量Redis(获取消息数量redis)
- Redis空间加速消息队列推送(消息队列推送 redis)
- 消息队列与Redis谁能赢得速度之战(消息队列和redis谁快)
- 面试中遇见的消息队列Redis(消息队列redis面试)
- Redis与MQ构建强大的消息队列(消息队列redis和mq)
- 用Redis实现高效的消息队列机制(有redis 为何用队列)
- 基于Redis的消息队列限流策略(redis队列限流)
- Redis队列消息读取标记管理(redis 队列读取标记)
- 者利用Redis队列实现多个消费者的同步消息处理(redis队列多个消费)
- 利用Redis构建高效的消息队列系统(redis队列和消息队列)