亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于laravel 隊列的一些使用問題

關于laravel 隊列的一些使用問題

侃侃爾雅 2018-07-18 13:51:24
由于業務需要,我在一個方法中需要執行幾個不同的推送通知,經過思考我想通過隊列來執行,現在有一些問題需要各位大佬指點:文檔的寫法: php artisan queue:work database在運行隊列的時候,work可以理解為線程嘛?可以開啟多個連接嘛?我是說按下面這樣寫,如果不是那能否使用兩個連接呢?如何配置? php artisan queue:work  database,databse1隊列之間是并行執行的嘛?laravel的異步隊列,是不是可以理解為單獨開了一個線程,將所有隊列都放在這個線程里執行,而不是為每個線程單獨創建一個線程?如果我想每個隊列單獨使用一個線程,是不是只能使用swoole服務?
查看完整描述

2 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

  • 第一個問題,work可以理解位線程嗎?不可以,這里的php artisan queue:work只是一個進程,隊列中的任務是按順序執行的,同一時間在一個進程中只有一個任務在處理,只有這個處理完了才會接受下一個任務來處理。

    因此,為了提高執行效率,一般都會啟動多個這樣的work進程來處理,比如使用supervisor對進程進行管理。

    不能在一個php artisan queue:work指定兩個connection來處理,一般來說,如果存在多個不同的connection,那么啟動多個php artisan queu:work database這樣的進程來分別監聽不同的connection就可以了。

  • 第二個問題,隊列之間是并行執行的嗎?對于單個php artisan queue:work來說,里面的任務都是串行執行的,使用--queue參數可以指定其監聽不同的隊列,因此需要對于每個隊列,創建一個php artisan queue:work --queue queueName的進程分別進行處理,這樣隊列之間就可以并行處理了

  • 第三個問題,Laravel中的異步隊列,不能理解為線程,它們都是進程,推薦使用supervisor對多Laravel隊列進程進行管理。


查看完整回答
反對 回復 2018-07-18
  • 2 回答
  • 0 關注
  • 535 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號