/**
 * @param string $gameVersion
 *
 * @return Generator
 */
function mysqlDsnGenerator($gameVersion)
{
    $shardList = \Environment\PlatformFactory::make($gameVersion)->getMySQLShards();
    foreach ($shardList as $shard) {
        (yield $shard);
    }
}
Example #2
0
 /**
  * @param string $gameVersion
  *
  * @return array ['db1', 'db2', ...]
  */
 public static function listShardId($gameVersion)
 {
     $optionsGenerator = PlatformFactory::make($gameVersion)->getMySQLShards();
     $shardIdList = [];
     foreach ($optionsGenerator as $options) {
         $shardIdList[] = $options['shardId'];
     }
     return $shardIdList;
 }
Example #3
0
<?php

/**
 * Created by PhpStorm.
 * User: Jiang Yu
 * Date: 2015/07/07
 * Time: 11:29 AM
 */
require __DIR__ . '/../../bootstrap.php';
$options = getopt('', ['gv:']);
$gameVersion = isset($options['gv']) ? $options['gv'] : 'tw';
appendLog('game version: ' . $gameVersion);
$shardList = \Environment\PlatformFactory::make($gameVersion)->getMySQLShards();
foreach ($shardList as $shard) {
    appendLog($shard);
}
Example #4
0
            $pdo = new PDO($dsn, $dbItem['username'], $dbItem['password']);
        } catch (\PDOException $e) {
            throw new \Exception('connect to db failed: [' . $dsn . ']');
        }
        $sql = $query->getSql();
        dump($sql);
        $statement = $pdo->query($sql);
        $resultSet = $statement->fetchAll(PDO::FETCH_ASSOC);
        return array_map(function (array $data) {
            return $data['snsid'];
        }, $resultSet);
    }
}
$options = getopt('', ['concurrency:', 'date:', 'gv:']);
$concurrency = isset($options['concurrency']) ? (int) $options['concurrency'] : 100;
$gameVersion = isset($options['gv']) ? $options['gv'] : 'tw';
appendLog('game version: ' . $gameVersion . ', concurrency: ' . $concurrency);
$base = __DIR__ . '/../../../farm-server-conf/';
assert(is_dir($base));
$esHost = '52.19.73.190';
$esPort = 9200;
$esClient = new Client(['hosts' => [sprintf('http://%s:%d/', $esHost, $esPort)]]);
//$docUpdater = new DocumentUpdater($esClient, $gameVersion);
$docUpdater = new NonBlockingDocUpdater($concurrency);
$updater = new UserStatusUpdater($gameVersion);
dump($options);
$query = array_key_exists('date', $options) ? new AllDeAuthorizedUserQuery($options['date']) : new DeAuthorizedUserQuery();
$resultSet = $updater->run(\Environment\PlatformFactory::make($gameVersion), $query, $docUpdater);
dump($resultSet);
dump('Run time: ' . PHP_Timer::timeSinceStartOfRequest());
dump(sprintf('Memory: %4.2fMb', memory_get_peak_usage(true) / 1048576));
Example #5
0
 /**
  * @param string $gameVersion
  *
  * @return false|\PDO
  */
 public static function makeGlobalPdo($gameVersion)
 {
     $pdoPool = self::makePool($gameVersion);
     $shardId = PlatformFactory::make($gameVersion)->locateIdMap();
     return $pdoPool->getByShardId($shardId);
 }