工頭是一個簡單的分佈式隊列專為處理大量的一次性任務。
我們建立了這個在DISQUS處理頻繁,但像少見的任務“這一數據遷移到一個新的模式。”
為什麼?
你可能會問,“為什麼不使用芹菜?”。那麼答案很簡單,就是正常的排隊需要(而不是字面上的,但它會是痛苦的無),你來緩衝所有任務到一個中央位置。這成為一個問題,當你有大量的任務,尤其是當它們含有大量的數據。
想像一下,你有1十億任務,每個在5K稱重。那,未壓縮的,最低4 TB的存儲空間,只是為了保持周圍,並獲得你很少需要。
工頭另一方面旨在利用一個可恢復迭代,並且只在一個時間拉中的作業的最大數目(使用標準的Python隊列的)。這確保了可以擴展線性一致的存儲器圖形。
用法
創建一個迭代器,和回調:
進口插座
#我們必須確保默認的超時**未設置**或隨機狗屎將達到風扇。
socket.setdefaulttimeout(無)
#工頭/ example.py
高清get_jobs(去年= 0):
 如果是恢復狀態#最後將被送到
 #從以前運行
 對於我的xrange(去年,億):
 #工作取得了一定是可序列化與鹹菜
 產量我
DEF handle_job(ⅰ):
 #這個** **必須進行冪等,作為恢復過程可能執行作業
 #這已經運行
 打印“得了%R!” %I
產卵主:
  TM-主taskmaster.example
釀出的奴隸:
  TM-從taskmaster.example
或產卵8站(每片含一個線程池):
  TM-產卵taskmaster.example 8
不喜歡的神奇功能發現的主/從?指定自己的目標:
  TM-主taskmaster.example:get_jobs $ TM-從taskmaster.example:handle_job
注:所有參數都是可選的,並且將默認為localhost沒有AUTH鍵
要求:
- 蟒蛇
評論沒有發現