任务调度执行了不相关的任务

新建了一个定时任务,测试时设置每分钟执行一次,调度任务运行成功,但打印调试中发现,日志的更新时间始终会多一分钟,多次验证找到问题所在,发现调度任务执行了一个不属于自己的操作,更新了同一个字段的时间,更新频率也是一分钟,而此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()
            )));
        }
    }
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

Linux中通过crontab -e执行laravel-totem不执行的话,试试这种写法: /PHP目录/php /项目目录/artisan schedule:run >> /dev/null 2>&1

8个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!