Dans le développement d'applications réelles, nous devons souvent supprimer régulièrement certaines données expirées ou inutiles afin de maintenir la propreté des données et les performances de la base de données. Dans le framework ThinkPHP, nous pouvons facilement implémenter la fonction de suppression régulière de données chaque jour via la classe Timer.
Voici l'idée d'implémentation?:
- Tout d'abord, vous devez encapsuler le code de la tache planifiée dans une méthode, telle que deleteExpiredData().
- Dans le fichier d'entrée ThinkPHP index.php, instanciez un objet Timer, enregistrez une tache planifiée via celui-ci et spécifiez la méthode deleteExpiredData() à exécuter régulièrement chaque jour.
- Dans la méthode deleteExpiredData(), écrivez du code pour supprimer les données expirées, par exemple, interrogez toutes les données créées avant hier et supprimez-les.
Les étapes spécifiques d'implémentation sont les suivantes :
- Créez un module Test et créez un contr?leur nommé Task dans le répertoire du module. Le code est le suivant :
namespace?app\test\controller; use?think\Controller; use?think\Db; use?think\facade\Log; class?Task?extends?Controller { ????public?function?deleteExpiredData() ????{ ????????$yesterday?=?date('Y-m-d',?strtotime('-1?day'));?//獲取昨天的日期 ????????$where?=?['create_time'?=>?['<', $yesterday]]; //查詢條件 $res = Db::name('test')->where($where)->delete();?//執(zhí)行數(shù)據(jù)刪除操作 ????????Log::write('刪除了'.$res.'條過期數(shù)據(jù)');?//記錄日志 ????} }
Ici, prenez le module Test comme exemple pour interroger. la table de test sous le module Test Les données créées avant hier sont supprimées et le nombre d'éléments de données supprimés est enregistré dans le journal.
- Dans le fichier d'entrée ThinkPHP index.php, instanciez l'objet Timer et enregistrez la tache planifiée. Le code est le suivant :
use?think\console\Command; use?think\console\Input; use?think\console\Output; use?think\facade\Log; use?think\console\Schedule; require?__DIR__?.?'/../thinkphp/base.php';?//載入ThinkPHP框架 //定時任務(wù)注冊 $schedule?=?new?Schedule(); $schedule->call('app\test\controller\Task@deleteExpiredData')?//每天執(zhí)行deleteExpiredData()方法 ????->daily() ????->at('00:00');?//指定執(zhí)行時間 //Timer對象實例化 $timer?=?new?\think\Timer(); $timer->add(86400,?function?()?use?($schedule)?{ ????$schedule->run();?//執(zhí)行定時任務(wù) }); $timer->start();?//啟動定時器
Ici, un objet Schedule est d'abord instancié pour gérer les taches planifiées. Spécifiez ensuite la tache à exécuter chaque jour via la méthode daily() et spécifiez l'heure d'exécution de la tache via la méthode at(), qui est 00h00 chaque jour. Enregistrez ensuite la tache planifiée via la méthode add() de l'objet Timer et spécifiez l'intervalle d'exécution de la tache à un jour (c'est-à-dire 86 400 secondes). Enfin, démarrez le chronomètre et attendez que la tache soit exécutée.
- Placez le programme sur le serveur et exécutez-le pour réaliser la fonction de suppression régulière des données expirées chaque jour.
Résumé?:
Cet article présente des idées et des étapes de mise en ?uvre spécifiques pour répondre à la nécessité de supprimer régulièrement des données chaque jour dans le cadre ThinkPHP. Les classes Timer et Schedule sont principalement utilisées. Grace aux méthodes de ces classes, la fonction d'exécution régulière de taches spécifiées est réalisée, ce qui réduit considérablement la difficulté de développement et la charge de travail.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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