thinkphp が毎日定期的にデータを削除する方法
実際のアプリケーション開発では、データのクリーンさとデータベースのパフォーマンスを維持するために、期限切れのデータや役に立たないデータを定期的に削除する必要があることがよくあります。 ThinkPHP フレームワークでは、Timer クラスを通じて毎日定期的にデータを削除する機能を簡単に実装できます。
次は実装のアイデアです:
- まず、スケジュールされたタスクのコードを deleteExpiredData() などのメソッドにカプセル化する必要があります。
- ThinkPHP エントリ ファイルindex.php で、Timer オブジェクトをインスタンス化し、それを通じてスケジュールされたタスクを登録し、毎日定期的に実行される deleteExpiredData() メソッドを指定します。
- deleteExpiredData() メソッドで、期限切れのデータを削除するコードを記述します。たとえば、昨日より前に作成されたすべてのデータをクエリして削除します。
具体的な実装手順は次のとおりです:
- テスト モジュールを作成し、モジュール ディレクトリに Task という名前のコントローラーを作成します。コードは次のとおりです。
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.'条过期数据'); //记录日志 } }
- ThinkPHP エントリ ファイルindex.php で、Timer オブジェクトをインスタンス化し、スケジュールされたタスクを登録します。コードは次のとおりです:
-
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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、ThinkPhpのCLI機能を使用して、構築コマンドラインアプリケーション(CLI)を示しています。 INSUなどの一般的な落とし穴を強調しながら、モジュラー設計、依存関係注入、堅牢なエラー処理などのベストプラクティスを強調しています

この記事では、パフォーマンスの最適化、ステートレス設計、セキュリティに焦点を当てたサーバーレスアーキテクチャでThinkPhpを使用するための重要な考慮事項について説明します。コスト効率やスケーラビリティなどの利点を強調しますが、課題にも対処します

ThinkPHPのIOCコンテナは、PHPアプリで効率的な依存関係管理のための怠zyなロード、コンテキストバインディング、メソッドインジェクションなどの高度な機能を提供します。

この記事では、パラメーター化されたクエリを介してThinkPhpのSQL注入の脆弱性を防ぐこと、RAW SQLの回避、ORM、定期的な更新、適切なエラー処理を介して説明します。また、データベースクエリとvalidatを保護するためのベストプラクティスもカバーしています

この記事では、ThinkPhpとRabbitMQを使用して分散タスクキューシステムの構築を概説し、インストール、構成、タスク管理、およびスケーラビリティに焦点を当てています。重要な問題には、Immedのような一般的な落とし穴を避けるための高可用性の確保が含まれます

この記事では、ThinkPHPの組み込みテストフレームワークについて説明し、ユニットや統合テストなどの主要な機能と、早期のバグ検出とコード品質の向上を通じてアプリケーションの信頼性を高める方法について強調しています。

この記事では、アーキテクチャ、機能、パフォーマンス、およびレガシーアップグレードの適合性に焦点を当てたThinkPhp 5と6の重要な違いについて説明します。 ThinkPhp 5は従来のプロジェクトとレガシーシステムに推奨されますが、ThinkPhp 6は新しいPRに適しています

この記事では、セキュリティ、効率、スケーラビリティに焦点を当てた、ファイルのアップロードとクラウドストレージをThinkPHPで統合するためのベストプラクティスについて説明します。
