laravel如何執行超長時間代碼


laravel如何執行超長時間代碼

一、總結

一句話總結:

laravel可以用【自定義隊列】執行超長時間代碼,並且【expire設置為0】
'cust' => [
    'driver' => 'redis',
     'connection' => 'queue',
    'queue' => 'cust',
    'expire' => 0,
],

 

 

二、laravel如何執行超長時間代碼

轉自或參考:https://learnku.com/laravel/t/28377

 

(一)、需求

1. 后台執行,並且可以隨時查詢執行進度.
2. 這個超長時間 可能是 5 分鍾或者 1 個小時.

需求主要是從網站后台 web 方式點擊執行,讓其可以在后台運行,這樣我 web 可以關閉,后期隨時來查看執行狀態

 

(二)、解決

自定義隊列


估計要采用自定義 queue,supervisor 單獨運行一個

php artisan queue:work --queue=cust ... 這樣就可以和其他的隊列區分開了

然后代碼里
dispatch((new Job)->onQueue('cust'));



config/queue.php 里面設置這個多 queue
'cust' => [
    'driver' => 'redis',
     'connection' => 'queue',
    'queue' => 'cust',
    'expire' => 0,
],

 

 

 


免責聲明!

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



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