有个问题一直搞不明白,消息队列有到底有什么卵用
有个问题一直搞不明白,消息队列有到底有什么卵用,比如发邮件,我直接把邮件先关内容和账号信息存储到mysql或者redis,然后跑个死循环的php脚本不断去读取出来执行不就...
有个问题一直搞不明白,消息队列有到底有什么卵用,比如发邮件,我直接把邮件先关内容和账号信息存储到mysql或者redis,然后跑个死循环的php脚本不断去读取出来执行不就行了吗??? 消息队列到底用来做什么?
while($redis->getMessage($key))
{
sendEmail(......);
}
我这样难道不行吗?这样岂不是更简单吗?为何又是交换机又是路由key,搞一大堆概念 这到底是为何? 真的有这个必要吗?而且特别难理解,一直都理解不了rabbitmq的工作原理 展开
while($redis->getMessage($key))
{
sendEmail(......);
}
我这样难道不行吗?这样岂不是更简单吗?为何又是交换机又是路由key,搞一大堆概念 这到底是为何? 真的有这个必要吗?而且特别难理解,一直都理解不了rabbitmq的工作原理 展开
2个回答
展开全部
其实就是你说的用处,只是它封装了更多的类容,功能更加强大,性能也更好。
像你说的,自己实现一个简单的也是一样,只不过性能肯定没法比,还有比如你业务很多了怎么处理。mq这种就像抽象出来的类,和业务不相关
像你说的,自己实现一个简单的也是一样,只不过性能肯定没法比,还有比如你业务很多了怎么处理。mq这种就像抽象出来的类,和业务不相关
追问
请问rabbitmq的消费者是怎么工作的? 生产者还好理解,至少我调用了它,我通过它publish了一个消息。但是消费者怎么工作呢,消费者在没有任务时是个什么状态呢?是运行还是停止的? 就php来说,消费者也是一段很普通的代码而已,那这段代码到底谁来执行它,或者说是什么机制让“消费者”这段代码发生了执行? 难道也是一个死循环在那里一直等着吗?
追答
差不多吧。一般是设置一个linux的定时任务,定时消费你订阅的队列(按照业务逻辑处理,之后把订阅的队列消费掉)。
可以这么说,mq就相当于你写库,它主要就是publish消息分发消息
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询