<?php /** * Created by PhpStorm. * User: zhonglei * Date: 17/8/21 * Time: 22:17 */ namespace Frontend\Controller\Index; use Think\Log; use Common\Common\TaskCenter; use Common\Common\User; use Common\Common\TaskHelper; class UpdateUserTaskController extends AbstractController { protected $_require_login = false; /** * UpdateUserTask * @author zhonglei * @desc 更新用户常规任务进度接口 * @return void */ public function Index() { Log::record('start update user task', Log::INFO); // 单次处理总数(500) $max_count = 500; $taskCenter = &TaskCenter::instance(); $uids = []; // 获取用户ID while (count($uids) < $max_count) { $uid = $taskCenter->pop(TaskCenter::CACHE_KEY); if ($uid === false) { break; } // 去重 $taskCenter->rem(TaskCenter::CACHE_KEY, $uid); $uids[] = $uid; } if (empty($uids)) { Log::record('not found any data, exit', Log::INFO); exit; } Log::record('uids: ' . var_export($uids, true), Log::INFO); Log::record('start update user task', Log::INFO); $userServ = &User::instance(); $users = $userServ->listAll(['memUids' => $uids]); $taskHelper = &TaskHelper::instance(); // 更新常规任务进度,检查每日任务进度 foreach ($users as $user) { $taskHelper->updateCustomtaskProgress($user); $taskHelper->checkDailytaskProgress($user); } Log::record('end update user task'); exit('OK'); } }