pg_timetable es un planificador de ejecuciones para PostgreSQL desarrollado por CYBERTEC. Ofrece una gran flexibilidad y versatilidad de funcionalidades.
La planificación de tareas es una de los temas más importantes en bases de datos modernas. Dentro el ecosistema PostgreSQL, pgAgent y pg_cron son herramientas populares para programar ejecuciones, sin embargo ambas presentan varias limitaciones. Por este motivo, hemos decidido lanzar nuestra propia solución: pg_timetable, un planificador de tareas de próxima generación para PostgreSQL
pg_timetable es un ejecutable simple y fácil de correr, que se conecta a PostgreSQL. No es parte de la infraestructura del servidor. Por esta razón, no es una amenaza en cuanto a la seguridad o estabilidad de su servidor. Corre de manera independiente y su implementación es simple con una arquitectura robusta.
pg_timetable está orientado 100% a bases de datos y permite utilizar PostgreSQL como único controlador de tu flujo de trabajo. Los logs son guardados en la base de datos, por lo que resulta muy simple extraer información de los mismo utilizando SQL queries. También es posible visualizar datos y logs de ejecución rápido y fácil utilizando la tecnología que desee.
Planificadores de tareas tradicionales, como cron o pg_cron, pueden lanzar scripts o ejecutar SQL, pero es muy difícil combinar ambas tareas. Además, presenta problemas de modularización. pg_timetable lo ayuda a correr este tipo de operaciones. Las “Base tasks” pueden combinarse de manera flexible, permitiendo armar complejas cadenas de tareas.
Además, pg_timetable ofrece protección de concurrencia integrada. Esto previene a las tareas individuales de lanzarse a si mismas, mientras inundan su servidor lentamente. Utilizando un simple flag, pg_timetable le permite sincronizar complejas cadenas de operaciones.
Una tarea debe correr dentro de una transacción y esta debe terminar exitosamente o fracasar en su totalidad, sin matices. pg_timetable está completamente basado en transacciones. Esto permite combinar de manera flexible “base tasks” en una sola transacción, asegurando la integridad y confiabilidad en la tarea de tareas.
En general pg_timetable puede ser configurado utilizando SQL. Sin embargo, algunos prefieren configurarlo con el estilo “cron”. Para poder comenzar rápidamente, pg_timetable también soporta interfaces de configuración estilo “cron” y agendar tareas de manera sencilla. Esto es especialmente útil si desea correr tareas simples. pg_timetable transformará su configuración automáticamente al formato nativo.
Las cadenas autodestructivas sirven para ejecutar tareas una sola vez. Por ejemplo, si se quiere borrar un usuario dentro de dos semanas, o mandar un recordatorio a un cliente una sola vez. pg_timetable le permite programar cadenas de tareas autodestructivas de manera sencilla para estos casos.
pg_timetable has been designed to be cloud-ready from the start. Simply run pg_timetable as a Docker container, make use of Kubernetes and / or OpenShift. There are no external dependencies. pg_timetable is available as a container and as a statically linked binary for simple use. You can deploy pg_timetable at any cloud provider.
If you are running pg_timetable in a cloud environment the ability to run command line tools can be disabled easily 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 es un software abierto y puede ser utilizado gratuitamente por todo el mundo. Descargue el código fuente desde GitHub o utilice el Dockerfile si desea correrlo directamente desde un container.
Como siempre, animamos a que todos contribuyan a nuestras soluciones de código abierto.
+43 (0) 2622 93022-0
office@cybertec.at