2 回答

TA貢獻1876條經(jīng)驗 獲得超7個贊
第一個問題,work可以理解位線程嗎?不可以,這里的
php artisan queue:work
只是一個進程,隊列中的任務是按順序執(zhí)行的,同一時間在一個進程中只有一個任務在處理,只有這個處理完了才會接受下一個任務來處理。因此,為了提高執(zhí)行效率,一般都會啟動多個這樣的work進程來處理,比如使用supervisor對進程進行管理。
不能在一個
php artisan queue:work
指定兩個connection來處理,一般來說,如果存在多個不同的connection,那么啟動多個php artisan queu:work database
這樣的進程來分別監(jiān)聽不同的connection就可以了。第二個問題,隊列之間是并行執(zhí)行的嗎?對于單個
php artisan queue:work
來說,里面的任務都是串行執(zhí)行的,使用--queue
參數(shù)可以指定其監(jiān)聽不同的隊列,因此需要對于每個隊列,創(chuàng)建一個php artisan queue:work --queue queueName
的進程分別進行處理,這樣隊列之間就可以并行處理了第三個問題,Laravel中的異步隊列,不能理解為線程,它們都是進程,推薦使用supervisor對多Laravel隊列進程進行管理。
- 2 回答
- 0 關注
- 546 瀏覽
添加回答
舉報