hajcsár egy egyszerű elosztott queue kezelésére tervezett nagyszámú egyszeri feladatok.
Mi építettünk a Disqus kezelni a gyakori, de nem gyakori feladatokat, mint a "vándorolnak az adatokat egy új sémát".
Miért?
Lehet kérdezni, "Miért nem használja Zeller?". Nos a válasz egyszerűen az, hogy normális sorbanállás igényel (nem szó szerint, de ez lenne fájdalmas nélkül), akkor a puffer összes feladatot egy központi helyen. Ez akkor jelent problémát, ha van egy nagy mennyiségű feladatok, különösen, ha olyan mennyiségben tartalmaznak nagy mennyiségű adat.
Képzeld el, hogy 1 milliárd feladatokat, az egyes súlyú 5k. Amit, tömörítetlen, minimum 4 terabájt szükséges tárolása csak tartani, hogy a közelben, és a nyereség nagyon kevés.
Taskmaster másrészt úgy tervezték, hogy a resumable bejáró, és csak húzza a lehető legtöbb munkahely egy időben (szabványos Python Queue-k). Ez biztosítja az állandó memória minta, amely skálázható lineárisan.
Használat
Hozzon létre egy bejáró, és a visszahívás:
import aljzat
# Biztosítanunk kell az alapértelmezett időkorlát ** nincs beállítva ** vagy random szar fogják érinteni a ventilátor.
socket.setdefaulttimeout (nincs)
# Hajcsár / example.py
def get_jobs (utolsó = 0):
& Nbsp; # elmúlt küldenek, ha az állami újraindulását
& Nbsp; # egy korábbi fut
& Nbsp; for i in xrange (utolsó, 100.000.000):
& Nbsp; # munkahelyet hoztak kell serializeable a lé
& Nbsp; hozam i
def handle_job (i):
& Nbsp; # ez ** ** must kell idempotens, mint az újrakezdés a folyamatot is végezhetnek munkát
& Nbsp; #, hogy már fut
& Nbsp; print "Got% r!" % I
Kapsz egy mester:
& Nbsp; tm-master taskmaster.example
Kapsz egy slave:
& Nbsp; tm-slave taskmaster.example
Vagy nem kapsz 8 rabszolgák (egyenként a threadpool):
& Nbsp; tm-spawn taskmaster.example 8
Nem szeretem a mágikus funkciót felfedezni a master / slave? Adja meg a saját célokat:
& Nbsp; tm-master taskmaster.example: get_jobs $ tm-slave taskmaster.example: handle_job
Megjegyzés: Minden érvek nem kötelező, és akkor az alapértelmezés a localhost nélkül auth gombot.
követelmények :
- Python
Hozzászólás nem található