Pavlo is a PostgreSQL expert and developer at Cybertec, working with postgres for {{ CURRENT_YEAR - 2002 }} years. π
The talk firstly introduces all appropriate levels of database scheduling regardless of the vendor:
β’ Built-in Schedulers
β’ System Schedulers
β’ and then focuses on PostgreSQL and the means it provides.
Then we will throw some light onto the meaning and importance of critical approaches:
β’ SQL (database) level tasks
β’ shell (system) level tasks
β’ predefined tasks (depending on a scheduler)
of course, I will describe different conceptions of scheduled tasks:
β’ usual cron syntax, e.g., βAt 00:05 in August.β [5 0 * 8 *]
β’ non-standard cron by event, e.g., system reboot [@reboot]
β’ interval syntax, e.g. [@every 1h 15m], [@after 0h 15m]
β’ signaled tasks, when a user or a monitoring system gives an order for execution
Postgres community has already developed several tools in that area. Some popular common options will be highlighted together with the problems that different scheduling approaches have:
β’ pgAgent
β’ jpgAgent
β’ pg_cron
β’ pgBucket (runseven)
β’ pgAutomator (discontinued?)
We will discuss the two different architecture approaches for a PostgreSQL database scheduler:
β’ built-in aka server background worker
β’ external aka client worker
To overcome some of these problems, a new Open Source tool from Cybertec developed by me, called pg_timetable, is introduced and explained in detail.
It offers the simplest possibly entry into exhaustive Postgres scheduling combined with system tasks (cron on steroids). Also will be discussed advanced topics like transaction support, cross-cluster tasks, and cross-platform tasks.