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