piiskuri on jaetulla yksinkertaisella jonossa suunniteltu käsittelemään suuria määriä kertaluonteisia tehtäviä.
Rakensimme tämän at DISQUS käsitellä usein, mutta harvinaista tehtäviä, kuten "vaeltavat tämän datan uusi kaava".
Miksi?
Saatat kysyä, "Miksi et käytä Selleri?". No vastaus on yksinkertaisesti se, että normaali jonotus vaatii (ei kirjaimellisesti, mutta se halua olla kivulias ilman) voit puskuri kaikkea tehtävät keskeisellä paikalla. Tämä tulee ongelma, kun sinulla on paljon tehtäviä, etenkin kun ne sisältävät suuren määrän tietoa.
Kuvittele, että olet 1000000000 tehtävistä, kukin paino on 5k. Että pakkaamatta, vähintään 4 teratavua tallennustilaa tarvitaan vain pitää, että noin, ja voitot hyvin vähän.
Taskmaster toisaalta on suunniteltu ottamaan resumable iteraattorin, ja vain vetää enimmäismäärä työpaikkoja kerrallaan (tavallisilla Python Jono n). Tämä varmistaa tasaisen muistin malli, joka skaalautuu lineaarisesti.
Käyttö
Luo iteraattorin, ja soittopyynnön:
tuonti pistorasia
# Meidän on varmistettava oletusaikakatkaisu ** ei ole asetettu ** tai satunnainen paskaa osuu tuulettimeen.
socket.setdefaulttimeout (Ei mitään)
# Piiskuri / example.py
def get_jobs (viimeksi = 0):
& Nbsp; # viimeksi lähetettäisiin jos valtio jatkettiin
& Nbsp; # edellisestä run
& Nbsp; i xrange (viimeksi, 100000000):
& Nbsp; # työpaikkoja tuotti oltava serializeable kanssa suolakurkku
& Nbsp; saanto i
def handle_job (i):
& Nbsp; # tällä ** must ** voida idempotentti, koska jatkaminen prosessi voi suorittaa työn
& Nbsp; # joka oli jo ajettu
& Nbsp; print "Got% r!" % I
Spawn mestari:
& Nbsp; tm-mestari taskmaster.example
Spawn orja:
& Nbsp; tm-orja taskmaster.example
Tai kutemaan 8 orjia (joista kukin sisältää threadpool):
& Nbsp; tm-kutemaan taskmaster.example 8
Dont kuten maaginen toiminto löytää master / slave? Määritä omat tavoitteet:
& Nbsp; tm-mestari taskmaster.example: get_jobs $ tm-orja taskmaster.example: handle_job
Huom: Kaikki argumentit ovat valinnaisia, ja oletusarvo localhost ilman auth avain.
Vaatimukset :
- Python
Kommentteja ei löytynyt