} $pdoPool = PdoFactory::makePool($gameVersion); $installUidProvider = new InstallUidProvider($gameVersion, $pdoPool); $userDetailProvider = new UserDetailProvider($gameVersion, $pdoPool); $magicNumber = isset($options['magic']) ? (int) $options['magic'] : 500; assert($magicNumber > 10); $indexer = IndexerFactory::make(ELASTIC_SEARCH_HOST, $gameVersion, $magicNumber); if ($verbose) { dump(sprintf('version: %s, from: %s, to: %s, safe: %d, magic: %d', $gameVersion, $fromDay, $toDay, $safeRound, $magicNumber)); } $calendarDayGenerator = CalendarDayGenerator::generate($fromDate->getTimestamp(), $toDate->getTimestamp()); $totalUser = 0; $processedRound = 0; foreach ($calendarDayGenerator as $calendarDay) { $markerDate = new DateTimeImmutable($calendarDay); if ($calendarMarker->isMarked($markerDate)) { appendLog('bypass ' . $markerDate->format('Y-m-d')); continue; } $msg = basename(__FILE__) . ': process for ' . $calendarDay . ' run with ts ' . date('c'); appendLog($msg); $groupedUidList = $installUidProvider->generate($calendarDay, function ($shardId, $userCount, $delta) { if ($userCount === 0) { return; } appendLog(sprintf('%s install(%d) cost %s', $shardId, $userCount, PHP_Timer::secondsToTimeString($delta))); }); $distribution = array_map(function (array $uidList) { return count($uidList); }, $groupedUidList); $newInstallCount = array_sum($distribution);
$pdoPool = PdoFactory::makePool($gameVersion); $loginUidProvider = new LoginUidProvider($gameVersion, $pdoPool); // todo LoginUidProvider $userDetailProvider = new UserDetailProvider($gameVersion, $pdoPool); $magicNumber = isset($options['magic']) ? (int) $options['magic'] : 500; assert($magicNumber > 0); $indexer = IndexerFactory::make(ELASTIC_SEARCH_HOST, $gameVersion, $magicNumber); if ($verbose) { dump(sprintf('version: %s, from: %s, to: %s, safe: %d, magic: %d', $gameVersion, $fromDay, $toDay, $safeRound, $magicNumber)); } $calendarDayGenerator = CalendarDayGenerator::generate($fromDate->getTimestamp(), $toDate->getTimestamp()); $loginDistribution = []; $today = date('Y-m-d'); foreach ($calendarDayGenerator as $calendarDay) { $markerDate = new DateTimeImmutable($calendarDay); if ($calendarDay != $today && $calendarMarker->isMarked($markerDate)) { appendLog('bypass ' . $markerDate->format('Y-m-d')); continue; } $msg = basename(__FILE__) . ': process for ' . $calendarDay . ' run with ts ' . date('c'); appendLog($msg); $groupedUidList = $loginUidProvider->generate($calendarDay, function ($shardId, $userCount, $delta) { if ($userCount === 0) { return; } appendLog(sprintf('%s install(%d) cost %s', $shardId, $userCount, PHP_Timer::secondsToTimeString($delta))); }); $distribution = array_map(function (array $uidList) { return count($uidList); }, $groupedUidList); $newInstallCount = array_sum($distribution);