taskmaster

Screenshot Software:
taskmaster
Szczegóły programowe:
Wersja: 0.8.1
Filmu: 14 Apr 15
Wywoływacz: David Cramer
Licencja: Wolny
Popularność: 2

Rating: nan/5 (Total Votes: 0)

tyran jest prosta dystrybuowane kolejki przeznaczone do obsługi dużej liczby zadań jednorazowych.
Zbudowaliśmy to w Disqus obsłużyć częste, ale niezbyt często zadania, takie jak "przenieść te dane do nowego schematu".
Dlaczego?
Można zapytać: "Dlaczego nie skorzystać Seler?". Otóż ​​odpowiedź jest po prostu, że normalne kolejek wymaga (nie dosłownie, ale byłoby bolesne bez) do bufora wszystkie zadania w centralnej lokalizacji. Staje się to problemem, gdy trzeba dużej ilości czynności, a zwłaszcza wtedy, gdy zawierają znaczną ilość danych.
Wyobraź sobie, że 1 mld zadań, każde waży 5k. Ów, bez kompresji, co najmniej 4 TB pamięci masowej wymagane tylko do utrzymania, że ​​ok, a zyskuje jesteś bardzo mało.
Tyran z drugiej strony jest przeznaczony do podjęcia wstrzymywać i wznawiać iterator, i ciągnąć tylko w maksymalnej liczby miejsc pracy w czasie (przy użyciu standardowych Python Kolejka na). Zapewnia to spójny pamięci wzoru, który może w skali liniowej.
Zastosowanie
Stwórz iterator i oddzwanianie:
Gniazdo importu
# Musimy zapewnić, domyślny czas ** nie jest ustawiony ** lub losowo gówno trafi wentylator.
socket.setdefaulttimeout (Brak)
# Tyran / example.py
get_jobs def (ostatnia = 0):
& Nbsp; # Ostatnia zostanie wysłana, gdy państwo zostało wznowione
& Nbsp; # od poprzedniego uruchomienia
& Nbsp; i w xrange (ostatni, 100000000):
& Nbsp; # pracy przyniosły musi być serializeable z zalewy
& Nbsp; wydajność i
handle_job def (i):
& Nbsp; # to ** ** musi być idempotent, jak wznawianie procesu może wykonywać pracę
& Nbsp; #, które zostały już uruchomić
& Nbsp; print "Got% r!" % I
Spawn mistrza:
& Nbsp; tm-master taskmaster.example
Spawn niewolnika:
& Nbsp; tm-slave taskmaster.example
Albo tarło 8 niewolników (każda zawiera puli wątków):
& Nbsp; tm-tarło taskmaster.example 8
Dont like funkcji magicznej odkryć dla master / slave? Określić własne cele:
& Nbsp; tm-master taskmaster.example: get_jobs $ tm-slave taskmaster.example: handle_job

Uwaga:
Wszystkie argumenty są opcjonalne i domyślnie localhost bez klucza uwierzytelniającego

Wymagania .

  • Python

Inne programy z deweloperem David Cramer

django-uuidfield
django-uuidfield

20 Feb 15

Sentry
Sentry

20 Feb 15

nexus
nexus

15 Apr 15

nose-kleenex
nose-kleenex

15 Apr 15

Komentarze do taskmaster

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!