Swoole是一個高性能的PHP異步網絡通信引擎,它提供了數據庫操作模塊,可以方便地與數據庫進行交互
pecl install swoole
然后,在php.ini文件中添加以下內容以啟用Swoole擴展:
extension=swoole.so
<?php
$server = '127.0.0.1';
$port = 3306;
$user = 'username';
$password = 'password';
$dbname = 'database_name';
$conn = new Swoole\Database\MySQL($server, $port, $user, $password, $dbname);
if (!$conn->connect()) {
echo "連接失敗: " . $conn->error;
exit;
}
function cleanExpiredUsers()
{
global $conn;
// 設置過期時間(例如:1天)
$expire_time = time() - 86400;
// 編寫SQL查詢以刪除過期的用戶數據
$sql = "DELETE FROM users WHERE last_login < :expire_time";
// 使用預處理語句綁定參數并執行查詢
$stmt = $conn->prepare($sql);
$stmt->bindParam(':expire_time', $expire_time, PDO::PARAM_INT);
$result = $stmt->execute();
if ($result) {
echo "成功刪除 " . $result['affected_rows'] . " 個過期用戶數據。\n";
} else {
echo "刪除失敗: " . $conn->error;
}
}
cleanExpiredUsers()函數來執行數據清理操作。例如,你可以使用Swoole的定時器功能來定期執行這個函數:<?php
// 創建一個定時器,每隔60秒執行一次cleanExpiredUsers函數
$interval = 60;
$task = function () {
global $conn;
cleanExpiredUsers();
};
$server = new Swoole\Server("0.0.0.0", 9501);
$server->on('Start', function ($server) use ($interval) {
echo "Swoole服務器啟動在 http://0.0.0.0:9501\n";
});
$server->on('Task', function ($server, $fd, $reactor_id, $data) use ($interval) {
$task($interval);
});
$server->start();
這樣,你就可以使用Swoole數據庫操作模塊實現數據清理功能了。請注意,這只是一個簡單的示例,實際應用中可能需要根據具體需求進行調整。