Dalam pembangunan aplikasi sebenar, kami selalunya perlu memadamkan beberapa data yang telah tamat tempoh atau tidak berguna secara kerap untuk mengekalkan kebersihan data dan prestasi pangkalan data. Dalam rangka kerja ThinkPHP, kami boleh melaksanakan fungsi pemadaman data secara kerap setiap hari melalui kelas Pemasa.
Berikut ialah idea pelaksanaan:
Langkah pelaksanaan khusus adalah seperti berikut:
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.'条过期数据'); //记录日志 } }
Di sini kami mengambil modul Ujian sebagai contoh Pertanyaan data dalam jadual ujian di bawah modul Ujian yang telah dibuat lebih awal daripada semalam dan padamkannya, dan rekodkan bilangan data yang dipadam dalam log. .
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(); //启动定时器
Di sini kami membuat seketika. objek Jadual pertama, digunakan untuk mengurus tugas yang dijadualkan. Kemudian tentukan tugasan yang akan dilaksanakan setiap hari melalui kaedah daily() dan tentukan masa pelaksanaan tugasan melalui kaedah at(), iaitu 00:00 setiap hari. Kemudian daftarkan tugas berjadual melalui kaedah add() objek Pemasa, dan tentukan selang pelaksanaan tugas sebagai satu hari (iaitu 86400 saat). Akhir sekali, mulakan pemasa dan tunggu tugasan dilaksanakan.
Ringkasan:
Artikel ini memperkenalkan idea dan langkah pelaksanaan khusus untuk keperluan memadam data secara kerap setiap hari di bawah rangka kerja ThinkPHP. Kelas Pemasa dan Kelas Jadual digunakan terutamanya Melalui kaedah kelas ini, fungsi melaksanakan tugas tertentu secara berkala setiap hari direalisasikan, yang sangat mengurangkan kesukaran pembangunan dan beban kerja.
Atas ialah kandungan terperinci Bagaimana thinkphp boleh memadam data dengan kerap setiap hari. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!