Пример #1
0
 public function action_index()
 {
     //Load Config
     $dataType = \Config::load('api', 'api')['data-type'];
     //Get Paramator
     $getDataType = \Input::post('dataType') ? \Input::post('dataType') : 1;
     //Get MemData
     $mem = new Mem();
     $data['result'] = $mem->memRead($dataType[$getDataType]);
     $data['dataType'] = $getDataType;
     $this->template->title = 'Top » Index';
     $this->template->content = \View::forge('top/index', $data);
 }
Пример #2
0
 static function init()
 {
     if (!self::$obj) {
         self::$obj = new Mem();
     }
     return self::$obj;
 }
Пример #3
0
 public static function get_mem_ins()
 {
     if (null === self::$mem_instance) {
         self::$mem_instance = new Memcache();
     }
     return self::$mem_instance;
 }
Пример #4
0
 function doLogin()
 {
     // $db = Db::init('hihus');
     // $sql = 'select * from users where 1=1';
     // $res = $db->query($sql);
     // while($l = $res->fetch(PDO::FETCH_ASSOC)){
     // 	print_r($l);
     // }
     $mem = Mem::get('users');
     $mem->set("hihu", "100", 10 * 60);
     $s = $mem->get("hihu");
     var_dump($s);
 }
Пример #5
0
 public function __construct()
 {
     parent::__construct();
     $this->mem = Mem::get_mem_ins();
     $this->mem->addserver('127.0.0.1', 11211);
     $this->params = $this->input->post(NULL, TRUE);
     //分页设置
     if (isset($this->params['page_now'])) {
         $this->page_now = $this->params['page_now'];
     }
     if (isset($this->params['page_size'])) {
         $this->page_size = $this->params['page_size'];
     }
     //加载全局模块
     $this->load->model('Base_model');
     $this->load->model('Table_model');
     $this->st(array(), '系统未知错误!!!', API_UNKNOW_ERR);
     $this->check_api_map();
 }
Пример #6
0
 /**
  * 現在走行中の全列車情報
  * @param $metro
  * @return array
  */
 public function get_trainAllInfo()
 {
     //Load Config :
     $dataType = \Config::load('api', 'api')['data-type'][1];
     //Get MemData
     $mem = new Mem();
     $data = $mem->memRead($dataType);
     foreach ($data as $key => $value) {
         $responseData[] = array('_id' => $value['@id'], 'railway' => strrchr($value['odpt:railway'], 'TokyoMetro'), 'trainType' => strrchr($value['odpt:trainType'], 'TokyoMetro'), 'delay' => strrchr($value['odpt:delay'], 'TokyoMetro'), 'startingStation' => strrchr($value['odpt:startingStation'], 'TokyoMetro'), 'terminalStation' => strrchr($value['odpt:terminalStation'], 'TokyoMetro'), 'fromStation' => strrchr($value['odpt:fromStation'], 'TokyoMetro'), 'toStation' => strrchr($value['odpt:toStation'], 'TokyoMetro'), 'railDirection' => strrchr($value['odpt:railDirection'], 'TokyoMetro'), 'trainOwner' => strrchr($value['odpt:trainOwner'], 'TokyoMetro'));
     }
     return $this->response($responseData);
 }
Пример #7
0
//print_r($memd->getStats());
//$memd->add('mkey','mvalue',600);
$memd->set('mkey','mvalue',600);
//$memd->replace('mkey','mvalue2',600);
echo $memd->get('mkey');
$memd->delete('mkey');
//$memd->flush(); //慎用
//$memd->set('num',1,0);
//$memd->increment('num',5);
$memd->decrement('num',5);
echo $memd->get('num');
$data = array(
	'key1' => 'value1',
	'key2' => 'value2',
);

$memd->setMulti($data);
$result = $memd->getMulti(array('key1','key2'));
//$memd->deleteMulti(array('key1','key2'));
print_r($result);
echo $memd->getResultCode();
echo $memd->getResultMessage();
*/
include 'memcached.class.php';
$m = new Mem();
$m->addServer(array(array('127.0.0.1', 11211)));
echo $m->s('key', 'value', 1800);
echo $m->s('key');
$m->s('key', NULL);
echo $m->s('key');
echo $m->getError();
Пример #8
0
if ($type == "system") {
    DB::setBait('zhq', array('127.0.0.1', 'weiche_web', 'root', '000000', 3306));
    DB::setHarpoon('zhq');
    $sql = 'SELECT * FROM `weiche_ads` where `baidu_id` = ?';
    $ads_data = DB::getAll($sql, array($ads_id));
    foreach ($ads_data as $key => $vv) {
        $ads_data[$key]['id'] = $vv['baidu_id'];
    }
} else {
    $key = $type . 'vehicle_web_ads_json' . $ads_id;
    $ads_json = Mem::get($key);
    if (!$ads_json) {
        $url = 'http://img-src.buding.cn/weiche/ads.js?flush=' . time();
        $ads_json = @file_get_contents($url);
        if ($ads_json) {
            Mem::set($key, $ads_json, 600);
        } else {
            die('json is null');
        }
    }
    $ads_data = json_decode($ads_json, true);
}
$banner = '';
$style = '';
if (!$ads_id) {
    switch ($type) {
        case 'drivers':
            $style = 'body{background: url(http://img.buding.cn/weiche/2015/05/19/81c4b3e7b83b7b9e10711af089a7304d.jpg) repeat;}#ads{url(http://img.buding.cn/weiche/2015/05/19/81c4b3e7b83b7b9e10711af089a7304d.jpg) repeat;background-size: 100% auto}';
            $banner = 'http://img.buding.cn/weiche/2015/05/21/e286b21b54b95ea24a041bbb4d3c5097.jpg';
            break;
        case 'testdrive':
Пример #9
0
            return;
        }
        foreach ($this->servers as $k => $sid) {
            $proName = $k;
            $sidName = "{$sid}:{$this->port}";
            if (!file_exists($proName)) {
                mkdir($proName, 0777);
            }
            echo "\n\n{$proName}\n" . str_repeat("=", 32) . "\n";
            $this->connect($sid, $this->port);
            $items = $this->getExtendedStats('items');
            foreach ($items[$sidName]['items'] as $slab_id => $slab) {
                echo "{$proName}: handle slab-{$slab_id} data\n";
                if (!is_array($slab)) {
                    continue;
                }
                $logfile = "{$proName}/" . date('Ymd') . "-slab{$slab_id}.log";
                $item = $this->getExtendedStats('cachedump', $slab_id, 0);
                //遍历所有Slab
                foreach ($item[$sidName] as $key => $info) {
                    $func($key, $info, $logfile);
                }
            }
        }
    }
}
$proList = array('appcache3' => '10.15.201.40');
$mem = new Mem();
$mem->setServer($proList, '30008');
//$mem->info();//查看状态
//$mem->gc();//查看状态
Пример #10
0
 public static function run($getDataType)
 {
     //Load Config
     $config = \Config::load('api', 'api');
     $dataType = $config['data-type'];
     if ($getDataType == 1) {
         //日比谷線のロケーション情報
         //rdf:type=odpt:Train 90秒更新
         $url = $config['url'] . '?rdf:type=odpt:Train&odpt:railway=odpt.Railway:TokyoMetro.Hibiya&acl:consumerKey=' . $config['token'];
         $setKeyName = $dataType[1];
     } else {
         if ($getDataType == 2) {
             //日比谷線の運行情報
             //rdf:type=odpt:TrainInformation: 問題なく動いているかどうかを返す
             $url = $config['url'] . '?rdf:type=odpt:TrainInformation&odpt:railway=odpt.Railway:TokyoMetro.Hibiya&acl:consumerKey=' . $config['token'];
             $setKeyName = $dataType[2];
         } else {
             if ($getDataType == 3) {
                 //全駅情報(乗降人員数)
                 //odpt:PassengerSurvey
                 //フィルタかけるなら $@id=urn:ucode:ほにゃららかな
                 $url = $config['url'] . '?rdf:type=odpt:PassengerSurvey&acl:consumerKey=' . $config['token'];
                 $setKeyName = $dataType[3];
             } else {
                 if ($getDataType == 4) {
                     //路線情報
                     $url = $config['url'] . '?rdf:type=odpt:Railway&dc:title=日比谷&acl:consumerKey=' . $config['token'];
                     $setKeyName = $dataType[4];
                 } else {
                     if ($getDataType == 5) {
                         //路線情報
                         $url = $config['url'] . '?rdf:type=odpt:Train&acl:consumerKey=' . $config['token'];
                         $setKeyName = $dataType[5];
                     } else {
                         if ($getDataType == 6) {
                             //路線情報
                             $url = $config['url'] . '?rdf:type=odpt:Railway&acl:consumerKey=' . $config['token'];
                             $setKeyName = $dataType[4];
                             $setKeyNameLineAll = $dataType[7];
                         } else {
                             \Session::set_flash('error', '電車情報がありません');
                             \Response::redirect('top/index');
                         }
                     }
                 }
             }
         }
     }
     //Connect API
     $curl = \Request::forge($url, 'curl');
     $curl->set_method('get');
     $response = $curl->execute();
     $result = $curl->response();
     //Write
     if ($result->status == 200) {
         $trainKey = 'odpt:trainNumber';
         $data = json_decode($result->body, true);
         $mem = new \Mem();
         if ($getDataType == 1) {
             foreach ($data as $key => $value) {
                 //開発用
                 //$value[$trainKey] = 'A0000';
                 $r = $mem->memSave($setKeyName . ':' . $value[$trainKey], $value, $life_time = 3600);
                 $all[] = $value;
             }
             $r = $mem->memSave($setKeyName, $all, $life_time = 3600);
         } else {
             if ($getDataType == 4 || $getDataType == 6) {
                 foreach ($data as $value) {
                     $memData = array();
                     $lineKey = strrchr($value['owl:sameAs'], 'TokyoMetro');
                     if ($lineKey == 'Tozai') {
                         $lineKey = 'TokyoMetro.Tozai';
                     } else {
                         if ($lineKey == 'Tsukiji') {
                             $lineKey = 'TokyoMetro.Tsukiji';
                         }
                     }
                     //日本語の路線名
                     $memData['title'] = $value['dc:title'];
                     foreach ($value['odpt:stationOrder'] as $key2 => $value2) {
                         $stationIndex = $value2['odpt:index'];
                         $memData[$stationIndex]['name'] = strrchr($value2['odpt:station'], 'TokyoMetro');
                         if ($memData[$stationIndex]['name'] == 'Tsukiji') {
                             $memData[$stationIndex]['name'] = 'TokyoMetro.Tsukiji';
                         }
                         //Connect API & GET INFO ABOUT STATITON
                         $url = $config['url'] . '/' . $value2['odpt:station'] . '?acl:consumerKey=' . $config['token'];
                         $curlStation = \Request::forge($url, 'curl');
                         $curlStation->set_method('get');
                         $resStationData = $curlStation->execute();
                         $stationData = $curlStation->response();
                         $memData[$stationIndex]['stationInfo'] = json_decode($stationData->body, true);
                         sleep(10);
                         //駅情報のみにキャッシュ化
                         $mem->memSave($setKeyName . ':' . $memData[$stationIndex]['name'], $memData[$stationIndex], $life_time = 2592000);
                     }
                     //目的駅までの所用時間を整形
                     foreach ($value['odpt:travelTime'] as $key3 => $value3) {
                         if (isset($memData[$key3]) == true) {
                             $memData[$key3]['travelTime'] = $value3['odpt:necessaryTime'];
                             $memData[$key3]['toStation'] = strrchr($value3['odpt:toStation'], 'TokyoMetro');
                             $memData[$key3]['trainType'] = strrchr($value3['odpt:trainType'], 'TrainType');
                         }
                     }
                     //路線名のみを格納
                     if ($getDataType == 6) {
                         $lineAll[] = $lineKey;
                     }
                     //路線情報ごとにキャッシュ化
                     $r = $mem->memSave($setKeyName . ':' . $lineKey, $memData, $life_time = 2592000);
                 }
                 //路線名のみを格納
                 if ($getDataType == 6) {
                     $r = $mem->memSave($setKeyNameLineAll, $lineAll, $life_time = 2592000);
                 }
             } else {
                 $r = $mem->memSave($setKeyName, $data, $life_time = 3600);
             }
         }
     }
     if ($r) {
         echo 'success データ保存完了';
     } else {
         echo 'error データ保存失敗';
     }
 }