时间:2021-07-01 10:21:17 帮助过:24人阅读
请问laravel的队列是什么意思,实现的原理是什么,一般什么场景会用到队列?
这里的队列应该是指消息队列,队列的操作有入队和出队。也就是你有一个程序在产生内容然后入队(生产者)
另一个程序读取内容,内容出队(消费者)。
而队列该什么时候使用呢
当你不需要立即获得结果,但是并发量又不能无限大的时候,差不多就是你需要使用消息队列的时候。
最常遇到的就是App的推送通知了,当App用户群触发了很多操作的时候要通知目标用户,不可能在每次操作都执行推送代码这样会降低该接口的处理速度而且用户执行这些操作也不用知道有没有通知到目标用户只要能操作成功就可以,而是将这些操作数据插入到一个存储里去(memcache
、redis
等),然后在开个进程去执行存储里面的数据推送。
Laravel 5.2 服务-队列
就是数据结构里面的队列, 典型的操作方式是先进先出, 所有有(先进先出)这类需求的任务都可以使用这个数据结构.
更多关于队列数据结构的知识, 可以自行用搜索引擎搜索. 因为队列还有循环队列, 优先级队列等多种类别.
实现的原理, 其实就是实现队列的一般操作, 比如说出列, 入列. 一般会实现多个driver, 所谓driver, 就是用什么方式实现队列. 比如文本文件方式, DB方式, redis, monolog.
使用场景一般是需要排队的任务, 比如说抢票, 秒杀等.