setName('RefreshBookLimit') ->setDescription('刷新袋鼠屏蔽书籍缓存'); } //获取公众号 protected function execute(Input $input, Output $output) { Request::instance()->module('admin'); //cli模式下无法获取到当前的项目模块,手动指定一下 $output->writeln("RefreshBookLimit---开始"); Log::info("RefreshBookLimit---开始"); $key = "BL:*"; try { $redis = Redis::instance(); $output->writeln("RefreshBookLimit---清除旧缓存 start"); Log::info("RefreshBookLimit---清除旧缓存 start"); $redis::delScan($key); $output->writeln("RefreshBookLimit---清除旧缓存 end"); Log::info("RefreshBookLimit---清除旧缓存 end"); $output->writeln("RefreshBookLimit---刷入新缓存 start"); Log::info("RefreshBookLimit---刷入新缓存 start"); Db::table('book_limit')->chunk(1000, function ($res) use ($redis, $output) { foreach ($res as $val) { $output->writeln("RefreshBookLimit---刷入新缓存 id:{$val['id']} admin_id:{$val['admin_id']} book_id:{$val['bookid']} user_id:{$val['userid']}"); Log::info("RefreshBookLimit---刷入新缓存 id:{$val['id']} admin_id:{$val['admin_id']} book_id:{$val['bookid']} user_id:{$val['userid']}"); $redis->hset('BL:' . $val['admin_id'], $val['bookid'], $val['userid']); } }); $output->writeln("RefreshBookLimit---刷入新缓存 end"); Log::info("RefreshBookLimit---刷入新缓存 end"); } catch (\Exception $e) { $output->writeln('RefreshBookLimit---刷新书籍屏蔽缓存失败' . $e->getMessage()); Log::error('RefreshBookLimit---刷新书籍屏蔽缓存失败' . $e->getMessage()); } } }