taskmaster

Software screenshot:
taskmaster
Software informatie:
Versie: 0.8.1
Upload datum: 14 Apr 15
Ontwikkelaar: David Cramer
Licentie: Gratis
Populariteit: 2

Rating: nan/5 (Total Votes: 0)

leermeester is een eenvoudige gedistribueerde wachtrij ontworpen voor het verwerken van grote aantallen eenmalige taken.
We bouwden deze bij Disqus frequent te hanteren, maar ongewoon taken zoals "migreren deze gegevens naar een nieuw schema".
Waarom?
Je zou kunnen vragen: "Waarom geen gebruik maken van Selderij?". Wel, het antwoord is simpelweg dat de normale wachtrijen vereist (niet letterlijk, maar het zou pijnlijk zonder zijn) kunt u alle taken buffer in een centrale locatie. Dit wordt een probleem bij een groot aantal taken, vooral wanneer zij een grote hoeveelheid gegevens.
Stel je hebt 1 miljard taken, elk met een gewicht van 5k. Dat is, niet-gecomprimeerde, minimaal 4 terabytes aan opslag nodig alleen maar om dat rond te houden, en krijgt u heel weinig.
Opzichter aan de andere kant is ontworpen om een ​​hervattend iterator te nemen, en alleen trek in een maximum aantal taken tegelijk (met behulp van standaard Python Queue's). Dit zorgt voor een constante herinnering patroon dat lineair kan schalen.
Gebruik
Maak een iterator, en terugbellen:
import socket
# We moeten ervoor zorgen standaard timeout ** is niet ingesteld ** of willekeurige stront de ventilator raken.
socket.setdefaulttimeout (Geen)
# Leermeester / example.py
def get_jobs (laatste = 0):
& Nbsp; # laatste zou worden verzonden als staat werd hervat
& Nbsp; # uit een vorige run
& Nbsp; voor i in xrange (laatste, 100000000):
& Nbsp; # banen opgeleverd moet serializeable met augurk zijn
& Nbsp; opbrengst i
def handle_job (i):
& Nbsp; # deze ** must ** worden idempotent, als u het proces hervat kan een job uit te voeren
& Nbsp; # dat was al lopen
& Nbsp; print "Got% r!" % I
Paaien een meester:
& Nbsp; tm-meester taskmaster.example
Paaien een slaaf:
& Nbsp; tm-slave taskmaster.example
Of paaien 8 slaven (elk een ThreadPool):
& Nbsp; tm-spawn taskmaster.example 8
Dont zoals de magische functie te ontdekken voor master / slave? Geef aan uw eigen doelstellingen:
& Nbsp; tm-meester taskmaster.example: get_jobs $ tm-slave taskmaster.example: handle_job

Opmerking:
Alle argumenten zijn optioneel, en wordt standaard localhost zonder auth key

Eisen .

  • Python

Andere software van ontwikkelaar David Cramer

sentry-pivotal
sentry-pivotal

20 Feb 15

mock-django
mock-django

14 Apr 15

sentry-github
sentry-github

20 Feb 15

nydus-django
nydus-django

14 Apr 15

Reacties op taskmaster

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!