Laravel 運行隊列處理器

運行隊列

# 運行隊列處理程序
php artisan queue:work

# 運行隊列處理程序
php artisan queue:listen

# 指定任務處理器使用哪一個鏈接,鏈接名在 config/queue.php 中定義
php artisan queue:work redis

# 指定任務處理器使用的鏈接和處理的隊列名稱
php artisan queue:work redis --queue=emails

# 只處理隊列中的下一個任務
php artisan queue:work --once

# 指定任務處理器處理了多少個任務後關閉
php artisan queue:work --max-jobs=1000

# 指定任務處理器處理全部任務後關閉
php artisan queue:work --stop-when-empty

# 指定任務處理器處理了多少秒後關閉
php artisan queue:work --max-time=3600

# 指定隊列處理的優先級
php artisan queue:work --queue=high,low

# 優雅地從新啓動全部的 worker,需配合Supervisor來自動重啓
php artisan queue:restart

# 指定隊列執行的超時時間
php artisan queue:work --timeout=60

# 設置隊列爲空時的休眠時間
php artisan queue:work --sleep=3

queue:workqueue:listen 區別

  • queue:listen 一旦命令啓動,將一直保持運行,直到它被手動中止或關閉終端。當新的請求到來時,會從新加載整個框架,因此更新代碼後無需手動從新啓動隊列處理器便可生效。但性能不如 queue:work 好。
  • queue:work 一旦命令啓動,將一直保持運行,直到它被手動中止或關閉終端。當新的請求到來時,不從新加載整個框架,而是直接執行程序。更新代碼後,須要從新啓動隊列處理器,代碼才生效。

queue:work 全部參數說明

protected $signature = 'queue:work
                        {connection? : The name of the queue connection to work}
                        {--queue= : The names of the queues to work}
                        {--daemon : Run the worker in daemon mode (不推薦使用)}
                        {--once : Only process the next job on the queue}
                        {--stop-when-empty : Stop when the queue is empty}
                        {--delay=0 : The number of seconds to delay failed jobs}
                        {--force : Force the worker to run even in maintenance mode}
                        {--memory=128 : The memory limit in megabytes}
                        {--sleep=3 : Number of seconds to sleep when no job is available}
                        {--timeout=60 : The number of seconds a child process can run}
                        {--tries=1 : Number of times to attempt a job before logging it failed}';
相關文章
相關標籤/搜索