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.
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.
It is 100% database-driven and allows you to use PostgreSQL alone to control your workflows. It stores all logs 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.
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.
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.
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.
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.
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.
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:
1 2 |
--no-program-tasks Disable executing of PROGRAM tasks [$PGTT_NOPROGRAMTASKS] |
This ensures maximum security and reliable scheduling in any environment.
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.
As always, we encourage you to contribute to our Open Source solution and to send patches.
Interested in our other PostgreSQL tools? Check out our tools page here.
You need to load content from reCAPTCHA to submit the form. Please note that doing so will share data with third-party providers.
More InformationYou are currently viewing a placeholder content from Facebook. To access the actual content, click the button below. Please note that doing so will share data with third-party providers.
More InformationYou are currently viewing a placeholder content from X. To access the actual content, click the button below. Please note that doing so will share data with third-party providers.
More Information