prepare($sqlUpdate); $stmtUpdate->execute(); $updatedCount = $stmtUpdate->rowCount(); // ========================================================= // الخطوة 2: الحذف من جدول الانتظار (تنظيف Hot Data) // ========================================================= $sqlDelete = "DELETE FROM waitingRides WHERE created_at < DATE_SUB(NOW(), INTERVAL $minutesLimit MINUTE)"; $stmtDelete = $con->prepare($sqlDelete); $stmtDelete->execute(); $deletedCount = $stmtDelete->rowCount(); // ========================================================= // الخطوة 3: (اختياري) تنظيف الريدز // ========================================================= // بما أنك تستخدم Redis، المفترض أن تحذفها منه أيضاً. // لكن بما أن الريدز يعتمد على TTL (Expire) أو سيتم تحديثه عند الطلب القادم، // فالحذف من الـ MySQL يكفي لأن getRideWaiting سيفحص MySQL ولن يجدها. // تقرير العملية if ($deletedCount > 0) { $msg = "✅ [Cleanup Cron] Success: Timed out $updatedCount rides in Main DB, and Deleted $deletedCount rides from Waiting DB."; error_log($msg); echo json_encode(["status" => "success", "message" => $msg]); } else { $msg = "💤 [Cleanup Cron] No expired rides found."; error_log($msg); echo json_encode(["status" => "success", "message" => "Nothing to clean."]); } } catch (PDOException $e) { $errorMsg = "❌ [Cleanup Cron] Error: " . $e->getMessage(); error_log($errorMsg); echo json_encode(["status" => "failure", "message" => $e->getMessage()]); } ?>