1. 程式人生 > >Laravel-資料庫佇列

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