redis pub/sub在php中是否现实?
我想在PHP中使用redis pub/sub,但恐怕PHP不是唯一的工具:订阅者需要始终可调用,因为PHP不是为作为守护进程运行而构建的,我不能相信它总是可靠地“打开”。 那么,PHP世界的解决方案是什么:redis pub/sub在php中是否现实?,php,redis,publish-subscribe,messagebroker,paas,Php,Redis,Publish Subscribe,Messagebroker,Paas,我想在PHP中使用redis pub/sub,但恐怕PHP不是唯一的工具:订阅者需要始终可调用,因为PHP不是为作为守护进程运行而构建的,我不能相信它总是可靠地“打开”。 那么,PHP世界的解决方案是什么: 不要使用pub/sub,使用其他redis的存储,每x分钟使用一个crontask启动一次php 使用一个将调用php的代理 其他的 对于“2”,我的意思是:使用一个nodejs/java/fooBar服务器,它是后台用户,并回调php(使用http/cli或其他方式) 我找不到比“2”更好
编辑:
如果使用类似于platform.sh的云平台,您将如何做到这一点?不要给一个类似于supervisor.d的机会?多亏了这些评论,我找到了一个令人满意的方法:使用supervisor.d,它将重新启动symfony命令脚本,其中包括:
设置时间限制(0)
- 无限循环
- 对redis的阻塞调用(a
,最大方式比读写超时时间低1秒)BRPOP
- 为了不占用所有CPU时间,执行阻塞命令非常重要
- 我会去真正的酒吧/酒吧,但现在,我只有一个听众,所以没关系
- supervisor.d真的很容易安装/配置,文档很完整,我没有遇到任何问题,非常罕见+令人满意李>
- 看起来效果不错
- 日志是编写的,因此将来可能更容易理解
- 如果发生X次连续和接近崩溃,服务将停止,我没有找到方法得到通知,这确实是一个问题,我想我将转到()
- 就像@Mike Miller所说的:“这样做唯一需要记住的是,在代码更改后需要重新启动,否则它将继续运行您的旧代码”