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 :
Les étapes spécifiques d'implémentation sont les suivantes :
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(); //执行数据删除操作 Log::write('删除了'.$res.'条过期数据'); //记录日志 } }
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.
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框架 //定时任务注册 $schedule = new Schedule(); $schedule->call('app\test\controller\Task@deleteExpiredData') //每天执行deleteExpiredData()方法 ->daily() ->at('00:00'); //指定执行时间 //Timer对象实例化 $timer = new \think\Timer(); $timer->add(86400, function () use ($schedule) { $schedule->run(); //执行定时任务 }); $timer->start(); //启动定时器
Ici, un objet Schedule est d'abord instancié pour gérer les tâches planifiées. Spécifiez ensuite la tâche à exécuter chaque jour via la méthode daily() et spécifiez l'heure d'exécution de la tâche via la méthode at(), qui est 00h00 chaque jour. Enregistrez ensuite la tâche planifiée via la méthode add() de l'objet Timer et spécifiez l'intervalle d'exécution de la tâche à un jour (c'est-à-dire 86 400 secondes). Enfin, démarrez le chronomètre et attendez que la tâche soit exécutée.
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. Grâce aux méthodes de ces classes, la fonction d'exécution régulière de tâches 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!