Maison  >  Article  >  base de données  >  Comment utiliser le planificateur d'événements de MySQL pour implémenter la planification de tâches planifiées

Comment utiliser le planificateur d'événements de MySQL pour implémenter la planification de tâches planifiées

WBOY
WBOYoriginal
2023-08-03 09:43:501751parcourir

Comment utiliser le planificateur d'événements de MySQL pour mettre en œuvre la planification de tâches planifiées

Lors du développement et de la gestion de bases de données, il est souvent nécessaire d'effectuer certaines tâches régulièrement, comme la sauvegarde quotidienne de la base de données, les rapports statistiques hebdomadaires, etc. MySQL fournit un outil très utile, Event Scheduler, qui peut nous aider à mettre en œuvre la planification de tâches planifiées. Cet article explique comment utiliser le planificateur d'événements de MySQL pour implémenter la planification de tâches planifiées et fournit des exemples de code correspondants.

1. Activez le planificateur d'événements

Avant d'utiliser le planificateur d'événements, vous devez d'abord confirmer si le planificateur d'événements MySQL a été activé. Vous pouvez vérifier l'état du planificateur d'événements via la commande suivante :

AFFICHER LES VARIABLES COMME 'event_scheduler' ;

Si le résultat est Désactivé, vous devez activer manuellement le planificateur d'événements. Il peut être activé par la commande suivante :

SET GLOBAL event_scheduler = ON ;

Une fois activé avec succès, vous pouvez confirmer que le planificateur d'événements a été activé en exécutant à nouveau la commande SHOW VARIABLES LIKE 'event_scheduler' ; .

2. Créer une tâche planifiée

Pour créer une tâche planifiée à l'aide du planificateur d'événements, vous devez effectuer les étapes suivantes :

  1. Créer un planificateur d'événements

Utilisez l'instruction CREATE EVENT pour créer un planificateur d'événements. La syntaxe spécifique est la suivante :

CREATE EVENT event_name
ON SCHEDULE planning
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'string']
DO event_body;

où event_name est le nom de l'événement et le calendrier sont un cycle de planification, event_body est l'opération spécifique de l'événement.

  1. Définir le cycle de planification

Le cycle de planification peut être défini en fonction des besoins réels. Les cycles de planification suivants sont couramment utilisés :

  • Exécuter une fois par seconde : CHAQUE 1 SECONDE
  • Exécuter une fois par minute : CHAQUE 1 MINUTE
  • Exécuter une fois par heure : CHAQUE 1 HEURE
  • Exécuter une fois par jour : CHAQUE 1 JOUR
  • Exécuté une fois par semaine : CHAQUE 1 SEMAINE
  • Exécuté une fois par mois : CHAQUE 1 MOIS

Vous pouvez choisir la période de programmation appropriée en fonction de vos besoins.

  1. Écrivez l'opération spécifique de l'événement

Écrivez la logique d'opération spécifique dans la partie event_body. Vous pouvez utiliser des instructions SQL pour effectuer des opérations de base de données ou appeler des procédures ou des fonctions stockées.

Ce qui suit est un exemple de tâche planifiée pour sauvegarder la base de données à 3 heures du matin tous les jours :

CREATE EVENT backup_event
ON SCHEDULE CHAQUE 1 JOUR
STARTS '2022-01-01 03:00:00'
DO
BEGIN

DECLARE backup_file VARCHAR(255);
SET backup_file := CONCAT('/var/backup/db_', DATE_FORMAT(NOW(), '%Y%m%d_%H%i%s'), '.sql');
SET @sql := CONCAT('mysqldump -hlocalhost -uroot -ppassword dbname > ', backup_file);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

END ;

Le code ci-dessus crée un planificateur d'événements nommé backup_event et définit la période de planification à exécuter une fois par jour. Dans la partie event_body, une variable backup_file est d'abord définie pour stocker le chemin du fichier de sauvegarde. Utilisez ensuite la fonction CONCAT pour séparer le chemin du fichier de sauvegarde, puis utilisez l'instruction SET pour attribuer la commande de sauvegarde à la variable @sql. Enfin, utilisez les instructions PREPARE et EXECUTE pour exécuter la commande de sauvegarde.

3. Gérer les tâches planifiées

Après avoir utilisé l'instruction CREATE EVENT pour créer une tâche planifiée, vous pouvez la gérer via les commandes suivantes :

  • Afficher tous les planificateurs d'événements : SHOW EVENTS ; planificateur: SHOW EVENT event_name;
  • Activer le planificateur d'événements: ALTER EVENT event_name ENABLE;
  • Désactiver le planificateur d'événements: ALTER EVENT event_name DISABLE;
  • Modifier l'heure d'exécution du planificateur d'événements: ALTER EVENT event_name ON SCHEDULE AT 'date_time' ;
  • Les commandes de gestion passées peuvent facilement afficher et gérer les tâches planifiées.

Résumé

Cet article explique comment utiliser le planificateur d'événements de MySQL pour implémenter la planification de tâches planifiées. En créant un planificateur d'événements, en définissant le cycle de planification et en écrivant une logique de fonctionnement spécifique, vous pouvez facilement implémenter la fonction d'exécution régulière de tâches de base de données. Les développeurs peuvent personnaliser le cycle de planification et la logique de fonctionnement des tâches planifiées en fonction des besoins réels. Le planificateur d'événements de MySQL offre plus de flexibilité et de commodité pour le développement et la gestion de nos bases de données.

Code de référence:

- Créer des événements d'événements Scheduler

Create Event Backup_Event

on Schedule tous les 1 jour
Starts 2022-01-01 03: 00: 00'
do
begin

DECLARE backup_file VARCHAR(255);
SET backup_file := CONCAT('/var/backup/db_', DATE_FORMAT(NOW(), '%Y%m%d_%H%i%s'), '.sql');
SET @sql := CONCAT('mysqldump -hlocalhost -uroot -ppassword dbname > ', backup_file);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
d;

-- View tous les planificateurs d'événements

SHOW EVENTS;

--Afficher les informations sur le planificateur d'événements spécifié
SHOW EVENT backup_event;

--Activer le planificateur d'événements
ALTER EVENT backup_event ENABLE;

--Désactiver le planificateur d'événements
ALTER EVENT backup_event DISABLE ;

-- Modifier l'heure d'exécution du planificateur d'événements
ALTER EVENT backup_event ON SCHEDULE AT '2023-01-01 03:00:00';

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn