Exemplo n.º 1
0
 /**
  * Get data from site Ngoisao and update to redis
  * @param array $params - array (article_id, original_url)
  * @return Boolean
  */
 public function updateShareUrl($params)
 {
     // Default response
     $response = NULL;
     try {
         $article_id = intval($params['article_id']);
         $article_url = $params['original_url'];
         //get config key
         $config = Thethao_Global::getApplicationIni();
         // Get redis instance
         $redisInstance = Thethao_Global::getRedis('article');
         //make key
         $keyCache = Thethao_Global::makeCacheKey($config['view']['keyReis']['ngoisao']);
         //set redis
         $response = $redisInstance->hSet($keyCache, $article_id, $article_url);
     } catch (Exception $ex) {
         Thethao_Global::sendLog($ex);
     }
     return $response;
 }
Exemplo n.º 2
0
 /**
  * Get list league and season by team attend
  * @param int $teamID
  * @return array|boolean
  * @author QuangTM
  */
 public function getListLeagueAndSeasonTeamAttend($teamID)
 {
     $result = array();
     try {
         // Get redis instance
         $redisInstance = Thethao_Global::getRedis('article');
         // Get key cache
         $pattern = vsprintf($this->_team_match_league, array($teamID, '*'));
         // Get array key
         $arrKeys = $redisInstance->keys($pattern);
         // Pattern for get league
         $pattern = '/' . str_replace('*', '(\\d+)', $pattern) . '/';
         $match = null;
         foreach ($arrKeys as $key) {
             if (preg_match($pattern, $key, $match)) {
                 $result[$match[1]] = $redisInstance->sMembers($key);
             }
         }
     } catch (Exception $ex) {
         Thethao_Global::sendlog($ex);
     }
     return $result;
 }
Exemplo n.º 3
0
 /**
  * Get matches id which player attends
  * @param int $playerID
  * @param int $fromDate unix timestamp
  * @param int $toDate unix timestamp
  * @param boolean $reverse
  * @param int $limit
  * @param int $offset
  * @return array|boolean
  * @author QuangTM
  */
 public function getMatchesPlayerAttend($playerID, $fromDate, $toDate, $reverse = TRUE, $limit = 20, $offset = 0)
 {
     try {
         // Get redis instance
         $redisInstance = Thethao_Global::getRedis('article');
         // Get key redis for adding match by team
         // Get key cache
         $keyTennisMatches = vsprintf($this->_tennis_player_matches, $playerID);
         // Get array match id
         $arrMatchesID = array();
         if ($reverse === TRUE) {
             $arrMatchesID = $redisInstance->zRevRangeByScore($keyTennisMatches, $toDate, $fromDate, array('withscores' => TRUE, 'limit' => array($offset, $limit)));
         } else {
             $arrMatchesID = $redisInstance->zRangeByScore($keyTennisMatches, $fromDate, $toDate, array('withscores' => TRUE, 'limit' => array($offset, $limit)));
         }
         // Return result
         return $arrMatchesID;
     } catch (Exception $ex) {
         Thethao_Global::sendLog($ex);
     }
 }
Exemplo n.º 4
0
 /**
  * @author   : PhongTX - 29/01/2013
  * call job update caching FE
  * @param : string $strPageCode
  * @name : delBlockByPage
  * @copyright   : FPT Online
  * @todo    : delBlockByPage
  */
 public function delBlockByPage($strPageCode, $device)
 {
     try {
         $redisInstance = Thethao_Global::getRedis('article');
         //get key cache mobile
         $keyCache = vsprintf($this->_key_block_detail, array($strPageCode, $device));
         return $redisInstance->delete($keyCache);
     } catch (Exception $ex) {
         //log error
         Thethao_Global::sendLog($ex);
     }
 }
Exemplo n.º 5
0
 /**
  * delete article from BE Editor by arr info
  * @param array $arrArticle
  * @return boolean|array
  * @author PhuongTN
  */
 public function deleteArticle($arrArticle)
 {
     try {
         //default return
         $arrReturn = false;
         //get instance redis
         $redisInstance = Thethao_Global::getRedis('article');
         //check can get redis instance
         if ($redisInstance) {
             //Rule1:Add list folder news
             if (!empty($arrArticle['cate_rule1'])) {
                 //loop category rule1
                 foreach ($arrArticle['cate_rule1'] as $cateId) {
                     //generate key cache with all article (text, video, photo) cate original
                     $keyCache = vsprintf($this->_list_article_ids_by_rule_1, array($cateId, 0));
                     $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']);
                     $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']);
                     if ($rs) {
                         $totalRule1 = $redisInstance->get($keyCache . ':total');
                         if ($totalRule1 > 0) {
                             $redisInstance->set($keyCache . ':total', $totalRule1 - 1);
                         }
                     }
                     //generate key cache with all article (text, video, photo) cate original
                     $keyCache = vsprintf($this->_list_article_ids_by_rule_1, array($cateId, $arrArticle['article_type']));
                     $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']);
                     $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']);
                     if ($rs) {
                         $totalRule1 = $redisInstance->get($keyCache . ':total');
                         if ($totalRule1 > 0) {
                             $redisInstance->set($keyCache . ':total', $totalRule1 - 1);
                         }
                     }
                 }
             }
             //Rule2:Add list folder + list on news
             if (!empty($arrArticle['cate_list_on'])) {
                 //loop cate
                 foreach ($arrArticle['cate_list_on'] as $cateId) {
                     //generate key cache
                     $keyCache = sprintf($this->_list_article_ids_by_rule_2, $cateId);
                     $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']);
                     $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']);
                     if ($rs) {
                         $total = $redisInstance->get($keyCache . ':total');
                         if ($total > 0) {
                             $redisInstance->set($keyCache . ':total', $total - 1);
                         }
                     }
                 }
             }
             //Rule3:Latest news
             if (!empty($arrArticle['cate_rule3'])) {
                 //loop cate rule 3
                 foreach ($arrArticle['cate_rule3'] as $cateId) {
                     $keyCache = vsprintf($this->_list_article_ids_by_rule_3, array($cateId, 0));
                     $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']);
                     $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']);
                     if ($rs) {
                         $total = intval($redisInstance->get($keyCache . ':total'));
                         if ($total > 0) {
                             $redisInstance->set($keyCache . ':total', $total - 1);
                         }
                     }
                     $keyCache = vsprintf($this->_list_article_ids_by_rule_3, array($cateId, $arrArticle['article_type']));
                     $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']);
                     $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']);
                     if ($rs) {
                         $total = intval($redisInstance->get($keyCache . ':total'));
                         if ($total > 0) {
                             $redisInstance->set($keyCache . ':total', $total - 1);
                         }
                     }
                 }
                 $keyCache = vsprintf($this->_list_article_ids_by_rule_3, array(SITE_ID, 0));
                 $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']);
                 $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']);
                 if ($rs) {
                     $total = intval($redisInstance->get($keyCache . ':total'));
                     if ($total > 0) {
                         $redisInstance->set($keyCache . ':total', $total - 1);
                     }
                 }
                 $keyCache = vsprintf($this->_list_article_ids_by_rule_3, array(SITE_ID, $arrArticle['article_type']));
                 $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']);
                 $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']);
                 if ($rs) {
                     $total = intval($redisInstance->get($keyCache . ':total'));
                     if ($total > 0) {
                         $redisInstance->set($keyCache . ':total', $total - 1);
                     }
                 }
             }
             // end rule 3
             $arrReturn = true;
         }
         //end check redis instance
     } catch (Exception $ex) {
         //writelog error
         Thethao_Global::sendLog($ex);
     }
     return $arrReturn;
 }
Exemplo n.º 6
0
 /**
  * Delete match in league by league id and match id
  * @param type $leagueId
  * @param type $matchId
  */
 public function deleteMatchByLeague($leagueId, $matchId)
 {
     try {
         // Get redis instance
         $redisInstance = Thethao_Global::getRedis('object');
         // Get key redis for adding match by league
         $keyCache = sprintf($this->_league_match, $leagueId);
         $redisInstance->zAdd($keyCache, -1, $matchId);
         return $redisInstance->zDelete($keyCache, $matchId);
     } catch (Exception $ex) {
         Thethao_Global::sendlog($ex);
         return false;
     }
 }
Exemplo n.º 7
0
 public function setListEndAward($arrParams, $data)
 {
     $arrReturn = true;
     try {
         //get instance redis
         $redisInstance = Thethao_Global::getRedis('article');
         if ($redisInstance) {
             if (empty($data)) {
                 $keyCache = vsprintf($this->_end_list_award, $arrParams['fromdate']);
                 $redisInstance->delete($keyCache);
                 //$redisInstance->zAdd($keyCache, '0', null);
             } else {
                 $i = 1;
                 foreach ($data as $key => $item) {
                     $keyCache = vsprintf($this->_end_list_award, $arrParams['fromdate']);
                     if ($i == 1 && !empty($item)) {
                         $redisInstance->delete($keyCache);
                     }
                     //echo $json_encode($item);
                     $item['display_order'] = 100 - $item['display_order'];
                     $redisInstance->zAdd($keyCache, $item['display_order'], json_encode($item));
                     $i++;
                 }
             }
         }
     } catch (Exception $ex) {
         Thethao_Global::sendLog($ex);
     }
     return $arrReturn;
 }