簡體   English   中英

多個隊列vs多個作業

[英]Multiple queues vs multiple jobs in resque

我正在使用resque來后台處理兩種類型的作業:

(1) 3rd-party API requests 
(2) DB query and insert

雖然可以並行處理兩個作業,但是每個作業類型本身只能以串行順序進行處理。 例如,數據庫操作需要按順序進行,但可以與第三方API請求並行執行。

我正在考慮執行以下任一方法:

(1) Having two queues with one queue handling only API requests and the other queue 
handling only db queries. Each queue will have its own worker.

(2) One single queue but two workers. One worker for each job.

我想知道這兩種方法之間的區別,以及兩者之間哪種更好。

選擇架構的選擇不是直截了當的,您必須牢記許多事情。

有兩個隊列,一個隊列僅處理API請求,另一個隊列僅處理數據庫查詢。 每個隊列都有自己的工作程序。

回答:當兩個隊列都同樣繁忙時,便可以使用這種體系結構,即,如果一個隊列中有更多的作業,而另一個隊列為空,則您的一個工人將成為偶像,而其他隊列中將有作業等待。
您應該始終考慮充分利用您的工人。

一個隊列,兩個工人。 每個工作一名工人。

回答:這種方法也是我們在項目中使用的方法。
將所有作業排入一個隊列,並在其上運行多個工作程序。
無論存在哪種類型的工作,您的工人總是很忙。
適當利用工人是可能的。


最后,我建議您可以使用第二種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM