Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana thinkphp boleh memadam data dengan kerap setiap hari

Bagaimana thinkphp boleh memadam data dengan kerap setiap hari

PHPz
PHPzasal
2023-04-11 10:31:56451semak imbas

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:

  1. Mula-mula, anda perlu merangkum kod tugas yang dijadualkan ke dalam kaedah, seperti deleteExpiredData().
  2. Dalam fail kemasukan ThinkPHP index.php, nyatakan objek Pemasa, daftarkan tugas berjadual melaluinya dan nyatakan kaedah deleteExpiredData() untuk dilaksanakan secara kerap setiap hari.
  3. Dalam kaedah deleteExpiredData(), tulis kod untuk memadam data tamat tempoh, contohnya, tanya semua data yang dibuat lebih awal daripada semalam dan padamkannya.

Langkah pelaksanaan khusus adalah seperti berikut:

  1. Buat modul Ujian dan cipta pengawal bernama Tugas dalam direktori modul Kodnya 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' => ['<&#39;, $yesterday]]; //查询条件
        $res = Db::name(&#39;test&#39;)->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. .

  1. Dalam fail entri ThinkPHP index.php, nyatakan objek Pemasa dan daftarkan tugasan yang dijadualkan adalah seperti berikut:
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.

  1. Letakkan atur cara pada pelayan dan jalankannya untuk mencapai fungsi pemadaman data yang telah tamat tempoh secara kerap setiap hari.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn