2015-10-06 66 views
1

我有一個表格說員工(id,名稱,電子郵件,is_email_verified,created_date)。我需要每天爲已經創建的用戶發送一封電子郵件,並且未驗證電子郵件。我需要創建一個可以部署在兩個盒子上的服務。它將讀取用戶表並獲取用戶標識併發送郵件進行驗證。因爲,有兩個框,每個將讀取相同數量的用戶,因此將發送這兩封郵件。在分佈式環境中執行任務

怎麼樣,我們可以做這個服務,所以用戶id將分佈在服務器之間(如果我有n臺服務器)。

回答

0

有幾種方法可以做到這一點。

最直接&可靠:

  1. 創建從表中讀取所有用戶ID的工作任務,他們排隊任務隊列 - 每個用戶ID 1級的任務。
  2. 使用盡可能多的服務器從隊列中拉取任務(1-N)。

不需要排隊(不容錯):

選擇的散列函數將決定哪些用戶ID應該服務器進程。例如第一臺服務器處理奇數ID和第二偶數ID等等。或者類似的:

def should_i_send(user_id, server_id): 
    return user_id % server_id == 0 
+0

在這種情況下,拉拔器作業將是單點故障。 – anandkesari01

+0

不確定我是否明白你的觀點,因爲你可以擁有儘可能多的車伕。 –