taskmaster

Software screenshot:
taskmaster
Dettagli del software:
Versione: 0.8.1
Data di caricamento: 14 Apr 15
Sviluppatore: David Cramer
Licenza: Libero
Popolarità: 2

Rating: nan/5 (Total Votes: 0)

Taskmaster è una semplice coda distribuita progettata per la gestione di un gran numero di operazioni una tantum.
Abbiamo costruito questo a Disqus per gestire frequenti, ma compiti comuni come "migrare i dati in un nuovo schema".
Perché?
Si potrebbe chiedere: "Perché non usare Sedano?". Beh, la risposta è semplicemente che la messa in coda normale richiede (non letteralmente, ma che sarebbe stato doloroso senza) si per tamponare tutte le attività in una posizione centrale. Questo diventa un problema quando si dispone di una grande quantità di compiti, soprattutto quando contengono una grande quantità di dati.
Immaginate di avere 1 miliardo di compiti, ogni peso di 5k. Quello è, non compresso, a minimo 4 terabyte di storage necessarie solo per mantenere che circa, e si guadagna molto poco.
Taskmaster d'altra parte è stato progettato per prendere un iteratore ripristinabile, e tirare solo in un numero massimo di posti di lavoro in un momento (utilizzando standard di Python Coda di). Questo assicura un modello di memoria coerente che può scalare linearmente.
Utilizzo
Crea un iteratore, e callback:
Presa import
# Dobbiamo garantire timeout predefinito ** non è impostato ** o merda casuale colpiremo il ventilatore.
socket.setdefaulttimeout (None)
# Taskmaster / example.py
get_jobs DEF (ultimo = 0):
& Nbsp; # ultimo verrebbe inviato se lo stato è stato ripreso
& Nbsp; # da una precedente esecuzione
& Nbsp; per i in xrange (ultimo, 100000000):
& Nbsp; # lavori hanno prodotto deve essere serializeable con sottaceto
& Nbsp; la resa i
def handle_job (i):
& Nbsp; # questa ** ** deve essere idempotente, come riprendere il processo può eseguire un lavoro
& Nbsp; # che era già stato eseguito
& Nbsp; print "Got% r!" % I
Spawn un maestro:
& Nbsp; tm-master taskmaster.example
Spawn uno schiavo:
& Nbsp; taskmaster.example tm-slave
Oppure generare 8 slave (ciascuno contenente un ThreadPool):
& Nbsp; tm-uova taskmaster.example 8
Dont come la funzione magica scoperta per master / slave? Specificare i propri obiettivi:
& Nbsp; tm-master taskmaster.example: get_jobs $ tm-slave taskmaster.example: handle_job

Nota:
Tutti gli argomenti sono opzionali, e sarà default localhost senza chiave auth

Requisiti :.

  • Python

Altri software di sviluppo David Cramer

Django-PayPal
Django-PayPal

20 Jul 15

nexus-memcache
nexus-memcache

15 Apr 15

nose-json
nose-json

14 Apr 15

sentry-github
sentry-github

20 Feb 15

Commenti a taskmaster

I commenti non trovato
Aggiungi commento
Accendere le immagini!