grabData('nike_cn'); showJson(1001, 1004, ['count'=> count($result),'result'=> $result]); } /** * 新品抓取数据处理 */ public function catchGrabGoods(){ set_time_limit(0); $resource = input('r','nike_cn'); try { $goodIds = []; $goodsList = []; $queenKey = "queens:grabs_{$resource}:goods_".date('YmdH'); for($i=0; $i<50; $i++){ $goodsInfo = PRedis::lpop($queenKey); $goodsInfo = $goodsInfo? json_decode($goodsInfo, true) : []; $productId = isset($goodsInfo['product_id'])? trim($goodsInfo['product_id']) : ''; $cacheKey = "task:grabs_{$resource}:goods:".$productId; if($goodsInfo && !PRedis::get($cacheKey)){ if(Goods::checkGoodsExists($productId)){ PRedis::set($cacheKey, 1, 3600); continue; } $goodIds[] = $productId; $goodsList[] = $goodsInfo; PRedis::set($cacheKey, json_encode($goodsInfo, 256), 3600); } } // 入库 if($goodsList){ $res = GoodsModel::insertAll($goodsList); if(!$res){ return showJson(1004, '处理抓取新品数据失败', "\n"); } } $msg = "处理新品抓取数据结果,累计处理" . count($goodIds) . "个商品数据"; return showJson(1005, $msg, "\n"); } catch (\Exception $exception) { return showJson(1004, $exception->getMessage(), '', "\n"); } } /** * 清楚缓存 */ public function clearGrabCache(){ $resource = input('r','nike_cn'); PRedis::delByKeys("grab:grabs_{$resource}:*"); PRedis::delByKeys("task:grabs_{$resource}:*"); return showJson(1005, '清理抓取新品数据缓存成功', "\n"); } }