laravel-隊列(queue)


使用場景

例如我們需要注冊的時候需要發送一條郵件提醒用戶,平時的時候我們直接
在邏輯層注冊完成之后執行一個發送郵件,這樣做的話我們必須要等待郵件發送
完畢的時候用戶才可以注冊成功,效率很慢,這個時候我們就需要用到隊列的功能了

使用

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM