Poursuivons l’exploration des fonctionnalités phares de MySQL 5.1, et penchons-nous sur le programmateur d’évènements (Event Scheduler) présent depuis MySQL 5.1.6 . Cet article est rédigé avec la version 5.1.22 de MySQL.

Qu’est-ce qu’un programmateur d’évènements ?

Le programmateur d’événements ou « event scheduler » offre la possibilité, à l’administrateur de base de données, de déclencher l’exécution de requêtes programmées directement dans le serveur MySQL. Ce planificateur de tâches (CRON-like) interne permet donc d’automatiser très simplement des tâches à des intervalles réguliers, ou à heure fixe, sans avoir besoin de configurer le système sur lequel la base de données fonctionne.

Comment fonctionne le programmateur d’évènements ?

La première chose à faire est de vérifier si le programmateur d’évènements est activé. Pour ce faire regardez la valeur du paramètre event_scheduler:

mysql> SHOW VARIABLES LIKE 'event_scheduler';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | OFF   |
+-----------------+-------+

Par défaut le programmateur n’est pas activé, event_scheduler vaut donc OFF. Activez le avec la commande SET GLOBAL (le droit SUPER est nécessaire).

mysql> SET GLOBAL event_scheduler = 1;
mysql> SHOW GLOBAL VARIABLES LIKE 'event_scheduler';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+

Un fois activé, le programmateur d’évènements créé un processus léger (thread) qui tourne en tâche de fond. Ce processus est chargé d’exécuter les événements lorsque le moment est venu. On peut le voir avec la commande SHOW PROCESSLIT. Cependant, il faut avoir le privilège SUPER pour pouvoir la lancer.

mysql> SHOW PROCESSLIST \G
*************************** 2. row ***************************
Id: 4
User: event_scheduler
Host: localhost
db: NULL
Command: Daemon
Time: 0
State: Waiting for next activation
Info: NULL

(à suivre… event scheduler: Créer un évènement)

Tags: ,

This entry was posted on Lundi, avril 20th, 2009 at 14:34 and is filed under MySQL. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a reply

Name (*)
Mail (will not be published) (*)
URI
Comment