首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
redis订阅问题
我的是swoole启动了n个worker进程,我想在启动服务的时候启动redis订阅功能,将订阅功能放在onWorkerStart回调中后发现启动了N个redis订阅,这样再publish时代码订阅逻辑执行了n遍,请问怎么让他只执行一遍,是需要用一个专门进程来做订阅吗。 请问怎么实现呢
发布于4年前 · 2 次浏览 · 来自
提问
xmsite
我的是swoole启动了n个worker进程,我想在启动服务的时候启动redis订阅功能,将订阅功能放在onWorkerStart回调中后发现启动了N个redis订阅,这样再publish时代码订阅逻辑执行了n遍,请问怎么让他只执行一遍,是需要用一个专门进程来做订阅吗。 请问怎么实现呢
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2020-05-26
郭新华
额,没太看懂。订阅发布不就是一个publish 所有的订阅者都收到消息吗? 你是不是应该用redis的list啊。
赞
0
回复
2020-05-27
李铭昕
你可以用自定义进程来启动一个 `Process`,里面进行 `Redis` 订阅。 另外我记得 `\Redis` 似乎不支持取消订阅,可以试试这个 [redis-subscribe](https://github.com/mix-php/redis-subscribe)
赞
0
回复
微信公众号
热门内容
作者其它话题
- 在swoole开启SWOOLE_HOOK_NATIVE_CURL的情况下阿里云的OSS SDK的不兼容问题
- 为什么调试swoole应用时错误抛出两遍?
- 启用一键协程时的产生的PHP Warning
- 协程环境下curl访问微信支付接口出错
- systemd无法启动swoole服务
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。