這篇文章給大家介紹queue隊(duì)列服務(wù)如何在Laravel 4.2 中使用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
在曲麻萊等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),營(yíng)銷型網(wǎng)站,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),曲麻萊網(wǎng)站建設(shè)費(fèi)用合理。laravel中的隊(duì)列服務(wù)跟其他隊(duì)列服務(wù)也沒有什么不同,都是最符合人類思維的最簡(jiǎn)單最普遍的流程:有一個(gè)地方存放隊(duì)列信息,一個(gè)PHP進(jìn)程在運(yùn)行時(shí)將任務(wù)寫入,另外一個(gè)PHP守護(hù)進(jìn)程輪詢隊(duì)列信息,將達(dá)到執(zhí)行要求的任務(wù)執(zhí)行并刪除。由于PHP是url驅(qū)動(dòng)的同步語言,本身是阻塞的,所以laravel提供一個(gè)守護(hù)進(jìn)程工具來查詢并執(zhí)行隊(duì)列信息也就不足為奇了。
Laravel的queue配置文件是 /app/config/queue.php,在 Default Queue Driver 這一項(xiàng)中,可以選擇"sync", "beanstalkd", "sqs", "iron", "redis" 五種驅(qū)動(dòng)器。
1. sync是本地調(diào)試用的同步驅(qū)動(dòng)器
2. beanstalkd 是一個(gè)專業(yè)隊(duì)列服務(wù)驅(qū)動(dòng)器:http://kr.github.io/beanstalkd/
3. sqs和iron是國外第三方隊(duì)列服務(wù)
4. 最后一項(xiàng)redis給了我們一個(gè)使用redis的理由,這樣我們順便把緩存服務(wù)和session服務(wù)全部遷移到redis上了。
0. 順便說一句,session驅(qū)動(dòng)器千萬別用mysql,處理時(shí)間1S不是夢(mèng),哎,看誰呢,說的就是你,1S哥!
隊(duì)列服務(wù)需要專門新建任務(wù)類,作為獨(dú)立類,他們不需要繼承類,因?yàn)殛?duì)列里的任務(wù)在執(zhí)行的時(shí)候,是由PHP守護(hù)進(jìn)程來獨(dú)立調(diào)用的,當(dāng)然如果你要use一下別的類再調(diào)用,也不會(huì)出錯(cuò)。之前我把很多額外服務(wù)獨(dú)立到了一個(gè)單獨(dú)的文件夾 /app/services 里,比如輸入信息驗(yàn)證 validator,特殊安全驗(yàn)證模塊等,這次queue類們就位于其中。
queue的使用非常簡(jiǎn)單,下面就是一個(gè)簡(jiǎn)單的示例:
復(fù)制代碼 代碼如下: