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:
- Mula-mula, anda perlu merangkum kod tugas yang dijadualkan ke dalam kaedah, seperti deleteExpiredData().
- Dalam fail kemasukan ThinkPHP index.php, nyatakan objek Pemasa, daftarkan tugas berjadual melaluinya dan nyatakan kaedah deleteExpiredData() untuk dilaksanakan secara kerap setiap hari.
- 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:
- 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'?=>?['<', $yesterday]]; //查詢條件 $res = Db::name('test')->where($where)->delete();?//執(zhí)行數(shù)據(jù)刪除操作 ????????Log::write('刪除了'.$res.'條過期數(shù)據(jù)');?//記錄日志 ????} }
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. .
- 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框架 //定時任務(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();?//啟動定時器
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.
- 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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)