Article extension pg_cron

Qu’est-ce que c’est l’extension pg_cron  

L’extension « pg_cron » est une extension très pratique pour PostgreSQL. Elle permet d’ajouter des fonctionnalités de planification et d’exécution de tâches régulières directement dans la base de données. Cela élimine le besoin de dépendre d’un système de planification externe tel que cron sur les systèmes d’exploitation.

Avec « pg_cron », vous pouvez définir des tâches planifiées en utilisant la syntaxe cron bien connue. Cette syntaxe vous permet de spécifier des intervalles de temps précis, tels que chaque minute, chaque heure, chaque jour de la semaine, chaque mois, etc. Vous pouvez configurer des tâches pour s’exécuter selon vos besoins spécifiques.

L’une des fonctionnalités les plus intéressantes de « pg_cron » est la possibilité d’exécuter des requêtes SQL planifiées. Vous pouvez écrire des requêtes SQL pour effectuer des tâches de maintenance, des rapports, des extractions de données ou d’autres opérations programmées. Cela vous permet d’automatiser des tâches fréquentes et de les exécuter en fonction d’un calendrier précis.

En plus des requêtes SQL, « pg_cron » prend également en charge l’exécution de fonctions stockées planifiées. Cela signifie que vous pouvez écrire des fonctions complexes dans PostgreSQL et les programmer pour qu’elles s’exécutent à des moments spécifiques. Cela offre une flexibilité supplémentaire pour automatiser des tâches plus avancées ou personnalisées.

En utilisant « pg_cron », vous bénéficiez d’une intégration transparente des tâches planifiées au sein de votre base de données PostgreSQL. Vous pouvez gérer toutes vos tâches planifiées depuis PostgreSQL elle-même, ce qui facilite la gestion centralisée. Vous n’avez pas besoin de configurer un système de planification externe ni de vous soucier de synchroniser les tâches entre la base de données et le système d’exploitation.

Pour résumé, l’extension « pg_cron » offre la possibilité de planifier et d’exécuter des tâches régulières directement dans PostgreSQL. Elle utilise la syntaxe cron familière pour définir les horaires d’exécution. Vous pouvez exécuter des requêtes SQL ou des fonctions stockées, ce qui facilite l’automatisation de diverses tâches de maintenance et de traitement des données. Cela fait de « pg_cron » un outil puissant pour simplifier la gestion des tâches planifiées au sein de votre base de données PostgreSQL.

Prérequis  

Voici les prérequis pour l’installation de l’extension « pg_cron » pour PostgreSQL, détaillés sous forme de points :

  • installé sur le système.
  • Bibliothèques de développement PostgreSQL : 
        –       Pour Debian/Ubuntu : libpq-dev 
        –       Pour CentOS/RHEL : postgresql-devel  
        –       Pour Fedora : postgresql-devel 
  • Outils de compilation (GCC, Make) :  
        –       Pour Debian/Ubuntu : build-essential 
        –       Pour CentOS/RHEL : « Development Tools » group 
        –       Pour Fedora : « Development Tools » group  

Vous devez vous assurer d’avoir les privilèges nécessaires pour installer des packages et compiler des logiciels sur votre système.

Il faut prendre en compte que ces prérequis sont généraux et peuvent varier en fonction de votre distribution Linux spécifique. Assurez-vous de consulter les ressources officielles et la documentation de l’extension « pg_cron » pour obtenir des instructions d’installation précises et à jour pour votre environnement.

Compatibilité de l’extension pg_cron avec différentes version PostgreSQL  

Version de PostgreSQLCompatibilité pg_cron
PostgreSQL 9.5Non pris en charge
PostgreSQL 9.6Compatible
PostgreSQL 10Compatible
PostgreSQL 11Compatible
PostgreSQL 12Compatible
PostgreSQL 13Compatible
PostgreSQL 14Compatible

Installation de pg_cron  

  1. Vérification de la version de PostgreSQL afin de savoir si elle est compatible avec l’extension pg_cron

2. Installation de pg_cron via les package  

Commande : sudo yum install pg_cron_version 

3. Configuration du fichier postgresql.conf 

Renseigner les lignes suivantes dans le fichier postgresql.conf 

4. Restart du service PostgreSQL 

Commande : systemctl restart postgresql 

Dans votre fichier de log vous devez avoir un quelque chose de similaire tous cela va dépendre de votre configuration.

5. Voir si l’extension pg_cron est bien enregistré 

Commande : select name, setting, sourcefile from pg_settings where name =’shared_preload_libraries’ ;

6. Création de l’extension pg_cron   

Commande : create extension pg_cron ; 

7. Voir si l’extension est bien ajouter 

Commande : select * from pg_extension ; 

Utilisation de pg_cron  

Pour programmer une tâche, nous allons utiliser la procédure “schedule” qui est présenter dans le schéma suivant.

Création d’une tache répétitive 

  1. Afin de créer une tâche répétitive, il faut la commande suivante :

Commande : SELECT cron.schedule(‘nom_de_la_tâche’, ‘* * * * *’, ‘INSERT INTO CRON (name, last_name) VALUES (6,  »jhon »,  »cron »)’);

Cette commande va me permettre de créer une tâche pour chaque minute. 

Mettre en pause une tâche 

Pg_cron fonctionne avec un boolean soit FALSE « f » soit TRUE « t ».  

FALSE = non activé 

TRUE= Activé

  1. Dans le but de stopper une tâche avec pg_cron il faut utiliser la commande suivante :

Commande: Update cron.job set active=’f’ where jobid=oid de votre tâche;

Supprimer une tâche 

Afin d’arrêter une tâche, il faut exécuter la commande unschedule afin de supprimer une tâche existante. 

Commande : select * from cron.unschedule(oid de votre tâche);

Post Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *