Laravel-資料庫佇列
阿新 • • 發佈:2018-12-03
Laravel-資料庫佇列
標籤(空格分隔): php
介紹
Laravel佇列為不同的後臺佇列服務提供統一的API,例如Beanstalk,Amazon SQS, Redis,甚至其他基於關係型資料庫的佇列。佇列的目的是將耗時的任務延時處理,比如傳送郵件,從而大幅度縮短Web請求和相應的時間。佇列配置檔案存放在config/queue.php。每一種佇列驅動的配置都可以在該檔案中找到,包括資料庫、Beanstalkd、 Amazon SQS、 Redis以及同步(本地使用)驅動。其中還包含了一個null佇列驅動用於那些放棄佇列的任務
配置檔案
生成-執行 遷移檔案
php artisan queue:table //生成資料庫佇列的migration php artisan migrate //建立該資料庫隊列表
建立任務類
php artisan make:job SendEmail
推送任務類到佇列
輔助函式 dispatch 委派它到佇列
開啟監聽
php artisan queue:work
php artisan queue:listen
注意點
如果不加 --tries 會一直執行程序
失敗任務表
php artisan queue:failed-table
php artisan migrate
處理失敗任務
要檢視已插入到failed_jobs資料表中的所有失敗任務,可以使用Artisan命令queue:failed: php artisan queue:failed 該命令將會列出任務ID,連線,對列和失敗時間,任務ID可用於重試失敗任務,例如,要重試一個ID為5的失敗任務,要用到下面的命令 php artisan queue:retry 5 要重試所有失敗任務,使用如下命令即可: php artisan queue:retry all 如果你要刪除一個失敗任務,可以使用queue:forget命令: php artisan queue:forget 5 要刪除所有失敗任務,可以使用queue:flush命令 php artisan queue:flush