函数中增加了head请求,来判断url是否可以正常使用,导致函数执行时间比较长,如何进行优化
def task_detail(device_type):
data = {"task": []}
taskmasters = TaskMastersService.get_group(device_type=device_type)
data["taskmasters_id"] = taskmasters[1]
sample_task = {}
sample_id = []
for task in taskmasters[0]:
sample_task[task.sample_id] = task.id
if task.sample_id not in sample_id:
sample_id.append(task.sample_id)
sample_data = SampleService.get_sample(sample_id=sample_id)
for sample in sample_data:
dic = {}
tp_pcm_url = sample.audio_url
tp_pcm_url = tp_pcm_url.strip('mp3') + 'pcm'
note_range = sample.note_range
start_index = note_range.split(',')[0]
end_index = note_range.split(',')[1]
score_url = sample.score.ai_file_path
dic["id"] = sample_task[sample.id]
dic["sample_id"] = sample.id
dic["score_url"] = score_url
dic["tp_pcm_url"] = tp_pcm_url
dic["start_index"] = start_index
dic["end_index"] = end_index
# resp = requests.head(url=tp_pcm_url)
# if resp.status_code == 200:
data["task"].append(dic)
# else:
# continue
return data
加上注释掉的代码,函数执行就变慢很多。
希望达到效果:即判断了url是否可用,又不会导致函数执行很慢
推荐文章: