我有一個Rails應用程序,使用Resque在多個服務器上執行後臺作業。這些工作的資源需求是不同的,所以我想限制特定類型的工作量,每個服務器都可以。我希望能夠讓多個服務器查詢相同的Redis數據庫。Resque - 在多個服務器之間均勻分配作業負載
這裏是場景: 我有服務器1和服務器2連接到相同的Redis數據庫。
1)每個服務器應該採取3個「編碼」作業和5個「分析」作業最多(總共8個作業)。
2)在給定的時刻,Redis服務器將在「編碼」隊列中有10個作業,並且在「解析」隊列中有12個作業可供Resque工作人員處理。我有2個服務器在運行,查詢同一個數據庫。
問題:如何防止Server-1採用8個「Encoding」作業,Server-2採取其餘的措施?換句話說,如何限制Server-1從「編碼」隊列中只取3個作業,從「解析」隊列中取5個作業並使Server-2執行相同的操作?
我想保持代碼的通用,這樣我可以將其部署到多個服務器,而無需單獨的調整..
你能指出這類上司的一些例子希望一樣嗎? – Stpn