任务调度执行了不相关的任务
新建了一个定时任务,测试时设置每分钟执行一次,调度任务运行成功,但打印调试中发现,日志的更新时间始终会多一分钟,多次验证找到问题所在,发现调度任务执行了一个不属于自己的操作,更新了同一个字段的时间,更新频率也是一分钟,而此Server中的操作并没有在定时中引用,不知是什么原因造成。希望得到解决,谢谢
附上代码:
“updatetime”的时间始终为执行时间,两块代码块更新的信息是一样的,但执行条件不同
任务代码:
public function handle()
{
$list=UserService::allUserList();
if(!empty($list)){
foreach ($list as $key=>$val){
$checkUserKey=self::$checkUserLoginTimeRedisAccessKeySecret.$val['id'];
$userLoginInfo = Redis::hget(self::$checkUserLoginTimeRedisKey, $checkUserKey);
if(!empty($userLoginInfo)){
$userLoginInfoArray = json_decode($userLoginInfo,true);
$useTime=$userLoginInfoArray['updatetime']- $userLoginInfoArray['logintime'];
$user=UserService::getOneUserData(['id'=>$val['id']]);
if($useTime==0){
$userLoginInfoArray['logintime'] =time();
$userLoginInfoArray['updatetime'] =time();
}else{
$userLoginInfoArray['logintime'] = $userLoginInfoArray['updatetime'];
}
UserService::update(["id"=>$val['id'],"login_length"=>$user['login_length']+$useTime,]);
Redis::hset(self::$checkUserLoginTimeRedisKey,$checkUserKey, json_encode($userLoginInfoArray));
}
}
}
}
Service 中与与调度任务无关的代码
public function checkUniqueUserId($uid){
$checkUserKey=self::$checkUserLoginTimeRedisAccessKeySecret.$uid;
$userLoginInfo = Redis::hget(self::$checkUserLoginTimeRedisKey, $checkUserKey);
if(!empty($userLoginInfo)){
$userLoginInfoArray = json_decode($userLoginInfo,true);
$userLoginInfoArray['updatetime'] = time();
Redis::hset(self::$checkUserLoginTimeRedisKey,$checkUserKey, json_encode($userLoginInfoArray));
}else{
Redis::hset(self::$checkUserLoginTimeRedisKey, $checkUserKey, json_encode(array(
'uid' => $uid,
'logintime' => time(),
'updatetime' => time()
)));
}
}
推荐文章: