pg_timetable ist ein von CYBERTEC entwickeltes Job Scheduling Tool für PostgreSQL. Dank seiner flexiblen, aber zugleich höchst reliablen Architektur, ist pg_timetable der perfekte Job Scheduler  für komplexe Abfolgen. 

Job Scheduling ist ein zentrales Thema im modernen Datenbankmanagement. In der PostgreSQL-Welt sind pgAgent und pg_cron sehr beliebt. Beide Tools haben jedoch eine Reihe von Einschränkungen, weshalb wir uns entschieden haben, an einer eigenen Lösung zu arbeiten. 

Warum pg_timetable?

1. Zuverlässige und robuste Architektur

2. Unterstützung von komplexen Abläufen

  • Unterstützung komplexer Toolchains
  • Möglichkeit Module zu entwickeln
  • Hochentwickelte Fehlerbehebung
  • Support für Transactions
  • Management von gleichzeitiger Ausführung (Concurrency protection)

3. Ausführung verschiedenster Aufgaben

  • SQL-Skripte
  • Shell Executables
  • Integrierte Aufgaben (Mails versenden, etc.)
  • Selbst-Löschung erledigter Aufgaben

1. Zuverlässige und robuste Architektur

Wie pg_timetable funtkioniert

pg_timetable ist eine einfach zu bedienendes Programm, das sich mit PostgreSQL verbindet und im Hintergrund läuft. Es ist nicht Teil der Serverinfrastruktur selbst. Aus diesem Grund stellt es weder eine Sicherheitsbedrohung noch ein Stabilitätsproblem für Ihren Server dar. Es läuft unabhängig und ist als einfache, robuste Architektur implementiert.

pg_timetable: Advanced job scheduler

pg_timetable ist vollkommen datenbankgesteuert und ermöglicht es Ihnen, PostgreSQL allein zur Steuerung Ihrer Arbeitsabläufe zu verwenden. Alle Logs werden in der Datenbank gespeichert, was die Analyse der Logging-Informationen mit Plain SQL sehr einfach macht. Sie können auch Daten- und Ausführungsprotokolle schnell und einfach mit einem Technologie-Stack Ihrer Wahl visualisieren.

2. Unterstützung von komplexen Abläufen

Komplexe Abläufe ausführen

Herkömmliche Job-Scheduler wie cron oder pg_cron können entweder Skripte starten oder SQL ausführen. Diese beiden Aufgaben zu kombinieren scheint mit diesen Tools unmöglich. pg_timetable hilft Ihnen dabei, genau diese beiden Operationen durchzuführen. „Basisaufgaben“ können flexibel kombiniert werden. Ganze „Arbeitsketten“ können regelmäßig ausgeführt werden. Flexibilität wird hier groß geschrieben.

 

PG_TIMETABLE: ADVANCED JOB SCHEDULING

PostgreSQL Jobs und Concurrency Protection

Zusätzlich bietet pg_timetable einen integrierten Überschneidungsschutz. Das bedeutet, es verhindert, dass sich einzelne Jobs immer wieder selbst starten und dabei Ihren Server langsam aber sicher zerstören. Mit einem simplen Flag-System können Sie komplexe Workflows synchronisieren und aufeinander abstimmen.

 

PG_TIMETABLE: ADVANCED JOB SCHEDULING

Transaktions-Jobs und Fehlerbehebung

Ein Transaktions-Job in einer Datenbank soll im Regelfall entweder fehlschlagen oder erfolgreich sein – nichts dazwischen. Da pg_timetable vollständig auf Transaktionen basiert können Sie „Basisaufgaben“ flexibel in einzelnen Transaktionen kombinieren, was Ihren Aufgabenketten auch viel mehr Zuverlässigkeit und Integrität verleiht.

3. Ausführung verschiedenster Aufgaben

„cron style“ Job Scheduling und Konfiguration

Im Allgemeinen kann pg_timetable einfach mit SQL konfiguriert werden. Einige Leute bevorzugen jedoch ein cron-artige Konfiguration. Um einen schnellen Einstieg zu ermöglichen, unterstützt unser Job Scheduler auch eine Schnittstelle, um mit cron-Syntax Jobs zu schedulen. Intern wird die Konfiguration dann auf Systemtabellen übersetzt.

Sich-selbst-löschende Ketten

Was ist, wenn Sie eine Aufgabe einplanen wollen, die im Erfolgsfall nur genau einmal ausgeführt werden soll? Beispielsweise möchten Sie einen Benutzer in zwei Wochen löschen oder eine Erinnerung an einen Kunden nur einmal senden. pg_timetable ermöglicht es Ihnen, sich-selbst-löschende Ketten und Jobs aus genau diesen Gründen zu erstellen.

 

Kontaktieren Sie uns für mehr Informationen.

Download

pg_timetable ist Open Source und kann von jedem frei verwendet werden. Sie können den Quellcode von unserer GitHub-Seite herunterladen. pg_timetable kann auch im Container betrieben werden. Entsprechende Dockerfiles stehen im Repo bereit.

Download