請問laravel的隊列是什麼意思,實現的原理是什麼,一般什麼場景會用到隊列?
請問laravel的隊列是什麼意思,實現的原理是什麼,一般什麼場景會用到隊列?
這裡的隊列應該是指訊息隊列,隊列的操作有入隊和出隊。也就是你有一個程式在產生內容然後入隊(生產者)
另一個程式讀取內容,內容出隊(消費者)。
而隊列該什麼時候使用呢
<code>当你不需要立即获得结果,但是并发量又不能无限大的时候,差不多就是你需要使用消息队列的时候。 </code>
最常遇到的就是App的推播通知了,當App用戶群觸發了很多操作的時候要通知目標用戶,不可能在每次操作都執行推送程式碼這樣會降低該介面的處理速度而且用戶執行這些操作也不用知道有沒有通知到目標用戶只要能操作成功就可以,而是將這些操作資料插入到一個存儲裡去(memcache
、redis
等),然後在開個進程去執行存儲裡面的數據推送。
Laravel 5.2 服務-隊列
就是資料結構裡面的佇列, 典型的操作方式是先進先出, 所有有(先進先出)這類需求的任務都可以使用這個資料結構.
更多關於佇列資料結構的知識, 可以自行用搜索引擎搜尋. 因為隊列還有循環隊列, 優先權隊列等多種類別.
實現的原理, 其實就是實現隊列的一般操作, 比如說出列, 入列. 一般會實現多個driver, 所謂driver, 就是用什麼方式實現隊列. 例如文字檔方式, DB方式, redis, monolog.
使用場景一般是需要排隊的任務, 比如說搶票, 秒殺等.