2009-11-13 4 views
19

Ich bin auf der Suche nach einem Enterprise-Task-Scheduler für Python, wie Quarz für Java ist. Anforderungen:Ein Enterprise-Scheduler für Python (wie Quarz)

  • Persistent: wenn der Prozess neu gestartet wird oder die Maschine neu gestartet wird, dann werden alle Arbeitsplätze müssen dort bleiben und müssen nach dem Neustart abgefeuert werden.
  • Aufträge müssen den Scheduler in einer Transaktion eingeben und verlassen (d. H. Wenn ein Datenbankvorgang in einer Datenbank ohne Bezug zum Scheduler fehlschlägt, darf der Auftrag nicht beendet oder in den Scheduler eingegeben worden sein).
  • Skalierbarkeit. Hängt davon ab, wie erfolgreich das Projekt ist, aber ich würde am liebsten von Anfang an wissen, dass ich nicht von einer Sackgasse aus anfange.
  • Konfigurierbarkeit: wenn Aufgaben ablaufen, wie viele gleichzeitig abgefeuert werden können, usw.

Alle Empfehlungen? Gibt es etwas, das Python-spezifisch ist, oder ist es möglich (oder sogar gut), von Python aus mit Quartz zu kommunizieren?

Antwort

3

Sie können Celery

Sellerie ist eine asynchrone Task-Queue/Auftragswarteschlange auf verteilt basierend verwenden Message Passing. Es ist auf den Echtzeitbetrieb ausgerichtet, unterstützt aber auch die Terminierung .

installieren Sellerie pip install celery

mit Eine weitere Option RQ verwendet.

RQ (Redis Queue) ist eine einfache Python-Bibliothek für Warteschlangenaufträge und verarbeitet sie im Hintergrund mit Arbeitern. Es wird von Redis unterstützt und es ist entworfen, um eine niedrige Barriere für den Eintritt zu haben. Es sollte einfach in Ihrem Webstapel integriert sein.

Installieren mit pip install rq.