123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- /*
- * RefreshBookLimit 刷新袋鼠屏蔽书籍缓存
- */
- namespace app\admin\command;
- use app\common\library\Redis;
- use think\console\Command;
- use think\console\input\Option;
- use think\console\Input;
- use think\console\Output;
- use think\Log;
- use think\Request;
- use think\Db;
- class RefreshBookLimit extends Command
- {
- protected $message = '';
- protected function configure()
- {
- $this->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());
- }
- }
- }
|