pg_timetable is a PostgreSQL job scheduler developed by CYBERTEC. It offers cutting-edge flexibility and a large variety of features.

Job scheduling is one of the most important topics in modern database management. In the PostgreSQL ecosystem, pgAgent and pg_cron have become quite popular. However, both tools have a fair number of limitations. That’s why we decided to release our own solution: introducing pg_timetable, the next-generation PostgreSQL job scheduler.

pg_timetable diagram of workflow between remote host, database host and monitoring facility

Download

Get pg_timetable >>

Read more about this product below.

Why use pg_timetable?

1. Reliable, stable architecture

2. Support for complex execution

  • Support for complex tasks chains
  • Ability to create modules
  • Sophisticated error handling
  • Support for transactional execution
  • Concurrency protection

3. Ability to execute different types of tasks

  • SQL scripts
  • Shell executables
  • Built in tasks (send mails, etc.)
  • Self-destructive chains

1. Reliable, stable architecture

How pg_timetable works

The software consists of a simple, easy to run executable which connects to PostgreSQL. It is not part of the server infrastructure itself. For this reason, it neither poses a security threat nor a stability concern to your server. It runs independently and is implemented in a simple, robust architecture.

pg_timetable has a reliable, stable architecture

It is 100% database-driven and allows you to use PostgreSQL alone to control your workflows. All logs are stored in the database, so it is super easy to dissect logging information using plain SQL. You can also visualize data and execution logs quickly and easily, using the technology stack of your choice.

Contact us for more info:

Contact us

2. pg_timetable supports complex execution

Execute complex workflows

Traditional job schedulers, such as cron or pg_cron, can either launch scripts or execute SQL. It can be very hard to combine those tasks, topping that off with problems of modularization. pg_timetable helps you to run those operations. “Base tasks” can be combined in a flexible way and entire “chains” can be executed on a regular basis which gives you a lot of flexibility.

 

PostgreSQL jobs and concurrency protection

Additionally, pg_timetable offers built-in concurrency protection. This means that it prevents single jobs from continuously launching themselves, which would slowly kill your server. By using a simple flag, it allows you to synchronize complex workflows.

pg_timetable can protect concurrency by scheduling blocks of time when jobs should not be started simultaneously

 

Transaction jobs and error handling

Mostly, a job should run in a database transaction and should either fail or succeed entirely – nothing in between. pg_timetable is completely based on transactions. Therefore, it allows you to flexibly combine “base tasks” in single transactions, which adds reliability and integrity to your task chains.

 

Need more info? Reach out to us:

Contact us

3. Ability to execute different types of tasks

Configuring pg_timetable “cron style”

In general, pg_timetable can be configured using plain SQL. However, some people prefer cron-style configuration. In order to get you started quickly, it also supports a cron-style configuration interface to make it easier to quickly configure jobs. This is especially useful if you want to run simple jobs. It will then automatically translate your configuration to the more advanced pg_timetable.

Self-destructive chains

What if you want to schedule a task which should only be executed exactly once, in the event it is successful? For example, you want to delete a user in two weeks from now or send a reminder to a client only once. pg_timetable allows you to very easily schedule self-destructive chains, exactly for those reasons.

Find out more here:

Contact us

4. pg_timetable: Cloud-ready by design

pg_timetable’s design is cloud-ready from the start. Simply run it as a Docker container, make use of Kubernetes and / or OpenShift. There are no external dependencies. It is available as a container and as a statically-linked binary for simple use. You can deploy it with any cloud provider.

If you are running pg_timetable in a cloud environment, the ability to run command line tools can be easily disabled using a simple parameter:

--no-program-tasks Disable executing of PROGRAM
tasks [$PGTT_NOPROGRAMTASKS]

This ensures maximum security and reliable scheduling in any environment.

Find out how pg_timetable can help your company!

Contact us

Download

pg_timetable is Open Source and can be freely used by everyone. Download the source code from GitHub or use the Dockerfile if you want to directly run it in a container.

DOWNLOAD >>

As always, we encourage you to contribute to our Open Source solution and to send patches.