如何用redis做消息队列的应用

我有一个php代码,接受任意客户端的请求,现在想在后端加上redis的队列将消息传递到别的处理模块。
大致结构如下
clienta\
clientb—broker.php->redis->worker.php
clientc/
.../
1,broker.php如何获取后端worker.php的处理结果(是引入一个响应队列么)
2,如果引入响应队列,broker.php如何将不同的结果对应返回给abc...客户端
3,如果php无法实现这种场景,有其它什么建议方法没,给点参考资料,thanks!
小唯快跑啊
浏览 304回答 2
2回答

Smart猫小萌

redis只是提供一个高性能的、原子操作的分布式队列实现。具体的业务还是得需要你自己定制。你的需求实际上是一个变形的生产者-消费者实现。对于此类需求,主要是将请求和实际的处理过程解耦,一般都是采取异步的方式来通知请求方,这跟用不用redis其实没有多大的关系。一般的实现方法是你需要将用户的请求封装成一个Task,然后将这个Task再push到redis队列,然后后端的worker.php完全可以多进程、多线程的并发处理Task并将处理结果回调给请求方。这里唯一麻烦点的就是这个Task的设计,需要能够包含请求信息(请求内容,请求方标识等等).
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript