有部分线上产品的图片资源无效,原因可能是图片服务器存储过期或外部图片地址失效
会造成C端用户体验不佳
技术方案
当前在线产品4W+,每个产品的图片约3-10张,每张图片有8个裁剪尺寸(不同的展示位)
依靠人工发现再处理的话,效率太低,杯水车薪,自动化巡检方案提上日程
- 获取在线产品列表:自动翻页
def get_spu_list(max_cnt=None):
l_pagenum = 1
the_list = []
while True:
_resp = HR.request(...)
_res = json.loads(_resp['response']['content'])
_list = _res['data']['list']
if not max_cnt:
max_cnt = _res['data']['totalCount']
the_list.extend(_list)
if len(the_list) >= max_cnt: # 完成所需/全部遍历,中断
break
l_pagenum += 1 # 翻页
return the_list
2\遍历每个产品下的所有图片地址:并发校验
q = Queue()
jobs = []
for img_url in spu['images']:
p = multiprocessing.Process(target=verify_one_image, args=(img_url, q))
jobs.append(p)
p.start()
for proc in jobs:
proc.join()
for proc in jobs:
verify_ret = q.get()
img_ret = {
...
}
3\检查图片有效性:http head获取状态即可
if 'http' not in your_url:
return '无效'
_resp = requests.head(url=your_url, timeout=10)
return '无效' if format(_resp.status_code) != '200' else '正常'
4\汇总报告,自动通知:定时任务,企微机器人