Laravel-數據庫隊列


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


免責聲明!

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



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