消费者监听消息队列

生产者中可以将数据插入消息队列中,但是消费者如何去取出这些内容呢?
难不成,有一个消费者就运行一个命令 php recevie1.php??

阅读 4.8k
3 个回答

你在脚本中开启多了消费者就好了呀

是这样啊,队列会一直监听,直到有消息进来,则按照约定的函数和方法对消息进行处理;
有很多消息进来,就排队一条一条的处理。

实际生产环境会用守护进程让队列在后台一直执行着的,所以监听和消费的动作都是自动,不间断的,不需要手动操作。

在不理解的前提下,这些回答真的晦涩难懂,我也是一直在纠结这个问题,咱不懂啊

我是这样理解的

消费者,说到底,是一个 PHP 或其他语言的可执行文件 (recive.php),该文件代码运行的目的就是为了不断的去询问 rabbitMq 有没有消息(就是你看到的代码里的 while (true) { … } ),有消息就做出动作 !

然后这个可执行文件用一些守护进程工具(例如:supervisor),确保它一直在服务端运行着 !

记得,这里面还有消息应答,即,得到消息 -》 做出动作 -》 动作完成告诉 rq 这条消息已消费

至于说,消息会一直被侦听,这个我不知道怎么设定,难道通过 rabbitmq server 直接设定消息应答消费的方法或者说可执行文件 ? 如果是这样,就容易理解多了,我们只管往队列里塞数据,然后写个方法去接受消息,消费消息,其它的交给 rqserver 去管理。

但是怎么设置呢 ?

最后,我跟楼主一样纠结 !

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题