/** * 测试分区 */ function actionTestSec() { $is_test = self::getParam('is_test'); $section_list = array_keys(getApp()->getSectionConfig()); $status = "ok"; $msg = ''; $result = array(); try { foreach ($section_list as $value) { $mc = new PL_Db_Mongo(DbConfig::getSecMongodb("users", $value)); $mc->switchColl($value . "_users"); $fields = array("_id", "level", "exp", "_it", "init_time"); $cond = array(); $user = $mc->findOne($cond, $fields); $result[$value] = $user; if (empty($user)) { $status = 1001; $msg .= "{$value区未查找到用户信息}<br />"; //$status = "error"; } } echo $status; if ($is_test) { echo "<pre>"; echo $msg; echo "user data:<br/>"; var_dump($result); } } catch (Exception $ex) { $status = "error"; echo $status; echo "<pre>"; echo $msg; echo "user data:<br/>"; var_dump($result); var_dump($ex); } }
public function action_check_sec_user_snap() { $date = $this->get_param('date'); if (!$date) { $date = date('Ymd', time()); } $file_name = P_PLATFORM . "_" . $date . "_usersnap.php"; $snap = (include $file_name); foreach ($snap['user'] as $sec => $user_data) { $uid = $user_data['_id']; $um = new model_User($uid, $sec); $ud = $um->get(); $login_t = $ud['login_t']; if (count($user_data) !== count($ud) || count(array_diff((array) $ud, (array) $user_data)) != 0) { echo "sec = {$sec}, uid = {$uid} 数据不一致!\n"; } else { echo "sec = {$sec}, uid = {$uid}, login_t = " . date('Y-m-d H:i:s', $login_t) . "\n"; } } foreach ($snap['count'] as $sec => $count) { $sec_user_db = new PL_Db_Mongo(DbConfig::getSecMongodb("users", $sec)); $sec_user_db->switchColl("{$sec}_users"); $get_count = $sec_user_db->count(array(), ''); if ($count !== $get_count) { echo "迁移以前分区[{$sec}]总用户数: {$count}, 迁移以后:{$get_count}; 用户数量不一致!\n"; } else { echo "迁移以前分区[{$sec}]总用户数: {$get_count}\n"; } } }