ホームページ > 記事 > PHPフレームワーク > thinkphp が毎日定期的にデータを削除する方法
実際のアプリケーション開発では、データのクリーンさとデータベースのパフォーマンスを維持するために、期限切れのデータや役に立たないデータを定期的に削除する必要があることがよくあります。 ThinkPHP フレームワークでは、Timer クラスを通じて毎日定期的にデータを削除する機能を簡単に実装できます。
次は実装のアイデアです:
具体的な実装手順は次のとおりです:
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.'条过期数据'); //记录日志 } }
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(); //启动定时器
以上がthinkphp が毎日定期的にデータを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。