Laravel隊列處理


laravel 的隊列服務對各種不同的後臺隊列服務提供了統一的 API。隊列允許你延遲執行消耗時間的任務,比如發送一封郵件。這樣可以有效的降低請求響應的時間。


隊列的配置文件被存儲在 config/queue.php 中。在這個文件中你會發現框架所支持的隊列驅動的配置連接示例。這些驅動包括:數據庫,Beanstalkd,Amazon SQS,Redis,和一個同步(本地使用)的驅動。

還有一個名爲 null 的驅動表明不使用隊列任務


  • 修改.env
CACHE_DRIVER=file 
// 這個值設爲redis,且redis服務未啓動,在執行php artisan queue:work會出現連接redis失敗的錯誤,因此當QUEUE_DRIVER不爲redis時,CACHE_DRIVER也不能爲redis。
QUEUE_DRIVER=database
  •  創建job表
 php artisan queue:table
 php artisan migrate
  • 定義任務調度cron命令
    這裏寫圖片描述
  • 生成job文件(app/Jobs下面)
php artisan make:job SendCampaginEmail

定時執行推送給job隊列文件SendCampaginEmail處理

這裏寫圖片描述


SendCampaginEmail文件

這裏寫圖片描述

。。。。。。
推給隊列文件方法

$job = (new SendCampaignEmail($campaigninfo))->delay(1);
dispatch($job);

執行隊列文件
這裏寫圖片描述

php artisan queue:work
或是
php artisan queue:listen

兩者區別查看文檔吧

具體任務失敗或是處理方法守護進程看文檔:

http://laravelacademy.org/post/6125.html

死亡,美妙的長眠,值得高歌一曲,啦~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章