= 1) { // Time since the most recent dump $sinceLast = formatDuration($now - $timestamps[0]); } if (count($timestamps) >= 2) { // Time between the last two dumps $betweenDumps = formatDuration($timestamps[0] - $timestamps[1]); } if (count($timestamps) >= 10) { // Average time between 10 dumps = (first - tenth) / 9 intervals $avgSeconds = ($timestamps[0] - $timestamps[9]) / 9; $avg10 = formatDuration((int) $avgSeconds); } return [ 'since_last' => $sinceLast, 'between_dumps' => $betweenDumps, 'avg_10' => $avg10, ]; } // Calculate all stats $east = calculateDumpStats($con, 'totnorth'); $west1 = calculateDumpStats($con, 'totsouth'); $west2 = calculateDumpStats($con, 'totwest2'); // Update cache table $sql = " UPDATE truckdump_stats_cache SET east_since_last = ?, east_between_dumps = ?, east_avg_10 = ?, west1_since_last = ?, west1_between_dumps = ?, west1_avg_10 = ?, west2_since_last = ?, west2_between_dumps = ?, west2_avg_10 = ?, updated_at = NOW() WHERE id = 1 "; $stmt = mysqli_prepare($con, $sql); mysqli_stmt_bind_param( $stmt, 'sssssssss', $east['since_last'], $east['between_dumps'], $east['avg_10'], $west1['since_last'], $west1['between_dumps'], $west1['avg_10'], $west2['since_last'], $west2['between_dumps'], $west2['avg_10'] ); $success = mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); mysqli_close($con); if ($success) { echo "Cache refreshed at " . date('Y-m-d H:i:s') . "\n"; exit(0); } else { error_log('refresh_truckdump_cache: Update failed'); exit(1); }