pg_timetable to harmonogram zadań PostgreSQL opracowany przez CYBERTEC. Oferuje najnowocześniejszą elastyczność i szeroką gamę funkcji.

Planowanie zadań jest jednym z najważniejszych tematów we współczesnym zarządzaniu bazami danych. W ekosystemach PostgreSQL pgAgent i pg_cron stały się dość popularne. Oba narzędzia mają jednak sporo ograniczeń. Dlatego zdecydowaliśmy się wydać własne rozwiązanie: Witamy pg_timetable, harmonogram zadań nowej generacji PostgreSQL.

PG Timetable

Dlaczego pg_timetable?

1. Niezawodna i stabilna architektura

2. Wsparcie dla złożonego wykonania

  • Wsparcie dla złożonych łańcuchów zadań
  • Możliwość tworzenia modułów
  • Zaawansowana obsługa błędów
  • Obsługa wykonywania transakcji
  • Ochrona współbieżności

3. Zdolność do wykonywania różnego rodzaju zadań

  • Skrypty SQL
  • Shell executables
  • Wbudowane zadania (wysyłanie wiadomości e-mail itp.)
  • Łańcuchy autodestrukcyjne

1. Niezawodna i stabilna architektura

Jak działa pg_timetable

pg_timetable to prosty, łatwy do uruchomienia plik wykonywalny, który łączy się z PostgreSQL. Nie jest częścią samej infrastruktury serwerowej. Z tego powodu nie stanowi zagrożenia dla bezpieczeństwa ani stabilności serwera. Działa niezależnie i jest implementowany jako prosta, solidna architektura.

pg_timetable: Advanced job scheduler

pg_timetable jest w 100% oparty na bazie danych i pozwala Ci używać samego PostgreSQL do kontrolowania twoich przepływów pracy. Cały dziennik jest przechowywany w bazie danych, dlatego bardzo łatwo jest rozdzielić informacje o logowaniu za pomocą zwykłego SQL. Możesz także szybko i łatwo wizualizować dane i dzienniki wykonania, korzystając z wybranego stosu technologii.

2. Wsparcie dla złożonego wykonania

Wykonuj złożone przepływy pracy

Tradycyjne programy planujące zadania, takie jak cron lub pg_cron, mogą uruchamiać skrypty lub wykonywać SQL. Wydaje się, że bardzo trudno jest połączyć te zadania, nadto z problemami modularyzacji. pg_timetable pomaga uruchomić te operacje. „Podstawowe zadania” można łączyć w elastyczny sposób, a całe „łańcuchy” można wykonywać regularnie, co daje dużą elastyczność.

PG_TIMETABLE: ADVANCED JOB SCHEDULING

Zadania PostgreSQL i ochrona współbieżności

Dodatkowo pg_timetable oferuje wbudowaną ochronę współbieżności. Oznacza to, że pojedyncze zadania nie będą się uruchamiać, jednocześnie powoli zabijając serwer. Używając prostej flagi, pg_timetable pozwala synchronizować złożone przepływy pracy.

PG_TIMETABLE: ADVANCED JOB SCHEDULING

Zadania transakcji i obsługa błędów

Przeważnie zadanie powinno działać w transakcji bazy danych i powinno zakończyć się niepowodzeniem lub powodzeniem całkowicie – bez pośrednictwa. pg_timetable jest całkowicie oparty na transakcjach. Dlatego pozwala elastycznie łączyć „zadania podstawowe” w pojedynczych transakcjach, co zwiększa niezawodność i integralność łańcuchów zadań.

3. Zdolność do wykonywania różnego rodzaju zadań

Konfigurowanie pg_timetable „cron style”

Ogólnie pg_timetable można skonfigurować przy użyciu zwykłego SQL. Jednak niektórzy wolą konfigurację w stylu crona. Aby szybko rozpocząć pracę, pg_timetable obsługuje również interfejs konfiguracyjny w stylu crona, aby ułatwić szybką konfigurację zadań. Jest to szczególnie przydatne, jeśli chcesz wykonywać proste zadania. Następnie automatycznie przełoży twoją konfigurację na bardziej zaawansowany sposób pg_timetable.

Łańcuchy autodestrukcyjne

Co zrobić, jeśli chcesz zaplanować zadanie, które powinno być wykonane dokładnie raz, na wypadek, gdyby zakończyło się sukcesem? Na przykład chcesz usunąć użytkownika za dwa tygodnie lub wysłać przypomnienie do klienta tylko raz. pg_timetable pozwala bardzo łatwo zaplanować samodestrukcyjne łańcuchy właśnie z tych powodów.

Skontaktuj się z nami, jeśli chcesz dowiedzieć się więcej!

POBIERZ

pg_timetable to Open Source i każdy może z niego swobodnie korzystać. Możesz pobrać kod źródłowy ze strony GitHub lub użyć Dockerfile, jeśli chcesz bezpośrednio uruchomić go w zbiorniku.

POBIERZ>>

 

Jak zawsze zachęcamy do udziału w naszym rozwiązaniu Open Source i wysyłania pakietów modyfikujących (patches).