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.
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 many 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.
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.
Contact us for more info:
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.
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:
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.
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:
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!
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.