Maison base de données tutoriel mysql Conseils de développement PHP : Comment utiliser les tâches planifiées Gearman pour traiter la base de données MySQL

Conseils de développement PHP : Comment utiliser les tâches planifiées Gearman pour traiter la base de données MySQL

Jul 01, 2023 pm 05:30 PM
mysql 定时任务 gearman

Compétences en développement PHP : comment utiliser les tâches planifiées Gearman pour traiter la base de données MySQL

Introduction :
Gearman est un système de planification de tâches distribué open source qui peut être utilisé pour exécuter des tâches en parallèle et améliorer les capacités de traitement du système. Dans le développement PHP, nous utilisons souvent Gearman pour gérer certaines tâches chronophages ou asynchrones. Cet article explique comment utiliser Gearman pour implémenter des tâches planifiées afin de gérer les opérations de base de données MySQL.

1. Installez Gearman

  1. Dans les systèmes Linux, vous pouvez installer Gearman directement via l'outil de gestion de packages. Par exemple, sur Ubuntu, vous pouvez utiliser la commande suivante pour installer :
sudo apt-get install gearman-job-server
sudo apt-get install php-gearman
Copier après la connexion
  1. Sous Windows, vous pouvez installer Gearman via PECL. Tout d'abord, vous devez installer l'extension PECL, puis utiliser la commande suivante :
pecl install gearman
Copier après la connexion
  1. Une fois l'installation terminée, vous devez ajouter l'élément de configuration de l'extension Gearman dans le fichier php.ini. Par exemple :
extension=gearman.so
Copier après la connexion

2. Créez Gearman Worker

  1. Créez un fichier PHP nommé worker.php. Écrivez le code suivant dans le fichier :
<?php
$worker = new GearmanWorker();
$worker->addServer(); // 添加Gearman服务器信息
$worker->addFunction("mysql_query", "process_query"); // 添加Gearman任务处理函数

while ($worker->work()) {
    if ($worker->returnCode() != GEARMAN_SUCCESS) {
        echo "Worker failed: " . $worker->error() . "
";
        break;
    }
}

function process_query($job) {
    // 处理数据库操作的逻辑
    $mysqli = new mysqli('localhost', 'username', 'password', 'database');
    // 执行数据库操作
    $result = $mysqli->query($job->workload());
    $mysqli->close();
    
    return $result;
}
?>
Copier après la connexion
  1. Dans le code ci-dessus, un objet GearmanWorker est d'abord créé et les informations du serveur Gearman et les fonctions de traitement des tâches sont ajoutées. Dans la fonction de traitement des tâches, nous pouvons écrire une logique de fonctionnement de base de données MySQL spécifique.

3. Créez un client Gearman

  1. Créez un fichier PHP et nommez-le client.php. Écrivez le code suivant dans le fichier :
<?php
$client = new GearmanClient();
$client->addServer(); // 添加Gearman服务器信息

$query = "SELECT * FROM table"; // 待处理的数据库查询语句
$client->doBackground("mysql_query", $query); // 发送Gearman任务

echo "Task sent to Gearman server.
";
?>
Copier après la connexion
  1. Dans le code ci-dessus, un objet GearmanClient est d'abord créé et les informations du serveur Gearman sont ajoutées. Nous spécifions ensuite la requête de base de données à traiter et utilisons la méthode doBackground pour envoyer la tâche au serveur Gearman.

4. Exécutez le programme

  1. Exécutez le fichier worker.php dans le terminal et démarrez Gearman Worker :
php worker.php
Copier après la connexion
  1. Exécutez le fichier client.php dans le terminal et envoyez la tâche au serveur Gearman :
php client.php
Copier après la connexion
  1. À ce moment-là, le Gearman Worker recevra les tâches du serveur Gearman et les exécutera, en traitant les opérations de base de données.

Résumé :
En utilisant les tâches planifiées Gearman pour traiter la base de données MySQL, nous pouvons allouer certaines opérations de base de données fastidieuses à différents travailleurs pour un traitement parallèle, améliorant ainsi les capacités de traitement et la vitesse de réponse du système. La flexibilité et l'extensibilité de Gearman en font l'un des outils de développement PHP les plus utiles.

Remarque : dans le développement réel, les tâches planifiées et la logique de fonctionnement de la base de données doivent être raisonnablement conçues et ajustées en fonction des besoins spécifiques de l'entreprise et de l'architecture du système.

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 de ce site Web
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

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Compétences de traitement de structures de données volumineuses de PHP Compétences de traitement de structures de données volumineuses de PHP May 08, 2024 am 10:24 AM

Compétences de traitement de structures de données volumineuses de PHP

Comment optimiser les performances des requêtes MySQL en PHP ? Comment optimiser les performances des requêtes MySQL en PHP ? Jun 03, 2024 pm 08:11 PM

Comment optimiser les performances des requêtes MySQL en PHP ?

Comment utiliser la sauvegarde et la restauration MySQL en PHP ? Comment utiliser la sauvegarde et la restauration MySQL en PHP ? Jun 03, 2024 pm 12:19 PM

Comment utiliser la sauvegarde et la restauration MySQL en PHP ?

Comment insérer des données dans une table MySQL en utilisant PHP ? Comment insérer des données dans une table MySQL en utilisant PHP ? Jun 02, 2024 pm 02:26 PM

Comment insérer des données dans une table MySQL en utilisant PHP ?

Quels sont les scénarios d'application des types d'énumération Java dans les bases de données ? Quels sont les scénarios d'application des types d'énumération Java dans les bases de données ? May 05, 2024 am 09:06 AM

Quels sont les scénarios d'application des types d'énumération Java dans les bases de données ?

Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4 Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4 Dec 09, 2024 am 11:42 AM

Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4

Comment utiliser les procédures stockées MySQL en PHP ? Comment utiliser les procédures stockées MySQL en PHP ? Jun 02, 2024 pm 02:13 PM

Comment utiliser les procédures stockées MySQL en PHP ?

Comment créer une table MySQL en utilisant PHP ? Comment créer une table MySQL en utilisant PHP ? Jun 04, 2024 pm 01:57 PM

Comment créer une table MySQL en utilisant PHP ?

See all articles