使用場景
例如我們需要注冊的時候需要發送一條郵件提醒用戶,平時的時候我們直接
在邏輯層注冊完成之后執行一個發送郵件,這樣做的話我們必須要等待郵件發送
完畢的時候用戶才可以注冊成功,效率很慢,這個時候我們就需要用到隊列的功能了
使用
1.配置驅動
在.env文件中配置QUEUE_CONNECTION=database
Laravel可配置多種隊列驅動,包括 "sync", "database", "beanstalkd", "sqs", "redis", "null"(具體參見app/config/queue.php)
其中sync為同步,database為使用數據庫,后面三種為第三方隊列服務,最后一種為不使用隊列。
通過在 .env 中的 QUEUE_CONNECTION 選項,來決定選擇何種驅動。
如 QUEUE_CONNECTION=database 即為選擇數據庫驅動隊列。
2.生成表
使為了使用 database 隊列驅動,你需要一張數據表來存儲任務。
運行 queue:table Artisan 命令來創建這張表的遷移文件。
當遷移文件創建好后,你就可以使用 migrate 命令來進行遷移
#生成遷移文件
php artisan queue:table
#生成遷移文件
php artisan migrate
3.下面開始生成任務類
#使用artisan命令生成
php artisan make:job SaveLog
#該命令會在app\Jobs\SaveLog.php中
4.調用job

這個時候就會看見數據庫中產生了相應的隊列數據
5.執行命令開啟隊列
php artisan queue:work
如果您想使用redis實現隊列只需要修改
config\queue.php
