2017-03-10 74 views
1

我在Laravel 5.2項目中有多個隊列工。我在AWS上運行。我正在使用ECS。我使用Redis作爲隊列驅動程序。Laravel 5.2 Rednudant(多個)隊列工作人員

我想知道..

如果我有2臺服務器工作在同一個隊列

php /var/www/laravel/artisan queue:listen --env=production --timeout=30 --tries=1 --queue=mail

將它們都處理作業,因此它被處理兩次?或者它只會被處理一次,這將有助於加載/冗餘?

很多預先感謝!

回答

3

作業只在一個隊列中存在一次,只要工作人員抓取作業,它就會從隊列中移除。

所以只要不同的工作人員訪問同一個隊列的同一個實例,這些工作只會被執行一次。

+0

yeh同樣的redis服務器,我認爲它們不可能同時抓住它,因爲redis服務器會按順序處理請求? –

+0

並且它也從刪除的同一時間從redis中選擇數據?我想我的意思是說它是安全的,或者在開啓之前需要添加任何額外的配置。 –

+0

隊列的構建只允許一個工作者訪問一個作業,因此使用默認配置來完成此操作是安全的。 – Joe