php任务队列有什么优势,PHP使用任务队列这个词的含义,到底什么是任务队列
最近一個聽到一個詞:任務(wù)隊列。
任務(wù)隊列指的是什么呢?
我自己有一個理解,就是比如用戶使用郵件注冊,注冊成功以后要給注冊郵箱發(fā)一封信息。因為發(fā)郵件是很耗時的操作,所以將郵件放在隊列中異步處理,不占用主線程。使用隊列是不是就是這樣的場景呢?
求大神解惑,傳道!
回復(fù)內(nèi)容:
最近一個聽到一個詞:任務(wù)隊列。
任務(wù)隊列指的是什么呢?
我自己有一個理解,就是比如用戶使用郵件注冊,注冊成功以后要給注冊郵箱發(fā)一封信息。因為發(fā)郵件是很耗時的操作,所以將郵件放在隊列中異步處理,不占用主線程。使用隊列是不是就是這樣的場景呢?
求大神解惑,傳道!
Yes, u 2 right.
可以給你提供一個方案,在 Redis 里面維護一個 List,業(yè)務(wù)代碼給 List 里面插入郵箱地址,另外有一個腳本從 Redis 里面讀到郵箱地址,專門做發(fā)送郵件的工作。
我寫的一篇博客給出了 PHP 和 Redis 實現(xiàn)隊列的示例:http://upliu.net/php-use-redis-as-queue-service.html
另外,天生異步的開發(fā)語言如Node.JS,進行網(wǎng)絡(luò)請求(針對題主的場景就是發(fā)送郵件)的過程中不會阻塞住腳本的運行。
當然使用多進程也是可以的,在主進程里面 fork 出一個子進程,然后子進程去發(fā)送郵件,主進程繼續(xù)執(zhí)行其邏輯。不過我覺得這樣略顯蛋疼~
就是這樣的。不過我通常不會用 php 來做這種持續(xù)性操作。
我的理解要按順序執(zhí)行的東西才用隊例。
竟然你都啟子線程了,為什么不多啟幾個子線程并行處理?
略顯淺薄,求輕噴。
相關(guān)標簽:php 隊列
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!
總結(jié)
以上是生活随笔為你收集整理的php任务队列有什么优势,PHP使用任务队列这个词的含义,到底什么是任务队列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dotnet vs code mysql
- 下一篇: php 降低图像大小,在PHP中调整图像