<?php
class baseTaskAction extends CommonAction {
function _initialize(){
parent::_initialize();
$this->Cache =Cache::getInstance('Redis',array('host'=>'127.0.0.1','port'=>6379,'timeout'=>'10'));
}
protected functionsaveQueue($listName,$data){
if (empty($data)&& !is_array($data)) {
return false;
}else{
$value =json_encode($data);
}
try{
$this->Cache->LPUSH($listName,$value);
return true;
}catch(Exception$e){
echo $e->getMessage()."\n";
return false;
}
}
protected functionremoveQueue($listName){
$datas = array();
try{
$datas = $this->Cache->LPOP($listName);
$datas = json_decode($datas,true);
}catch(Exception$e){
echo $e->getMessage()."\n";
return false;
}
return $datas;
}
protected functiongetQueueLength($listName){
return$this->Cache->LLEN($listName);
}
protected functionmultiLock($lockName,$lock_out_time){
$lock =$this->Cache->setnx($lockName,time()+ $lock_out_time);
if (!$lock) {
$lock_time= $this->Cache->get($lockName);
if($lock_time < time()) {
$this->Cache->delete($lockName);
$lock =$this->Cache->setnx($lockName,time()+ $lock_out_time);
}else{
print_r('locked');
exit;
}
}
}
protected functionunlock($lockName){
$this->Cache->delete($lockName);
}
}
class baseTaskAction extends CommonAction {
function _initialize(){
parent::_initialize();
$this->Cache =Cache::getInstance('Redis',array('host'=>'127.0.0.1','port'=>6379,'timeout'=>'10'));
}
protected functionsaveQueue($listName,$data){
if (empty($data)&& !is_array($data)) {
return false;
}else{
$value =json_encode($data);
}
try{
$this->Cache->LPUSH($listName,$value);
return true;
}catch(Exception$e){
echo $e->getMessage()."\n";
return false;
}
}
protected functionremoveQueue($listName){
$datas = array();
try{
$datas = $this->Cache->LPOP($listName);
$datas = json_decode($datas,true);
}catch(Exception$e){
echo $e->getMessage()."\n";
return false;
}
return $datas;
}
protected functiongetQueueLength($listName){
return$this->Cache->LLEN($listName);
}
protected functionmultiLock($lockName,$lock_out_time){
$lock =$this->Cache->setnx($lockName,time()+ $lock_out_time);
if (!$lock) {
$lock_time= $this->Cache->get($lockName);
if($lock_time < time()) {
$this->Cache->delete($lockName);
$lock =$this->Cache->setnx($lockName,time()+ $lock_out_time);
}else{
print_r('locked');
exit;
}
}
}
protected functionunlock($lockName){
$this->Cache->delete($lockName);
}
}