|
@@ -4,8 +4,6 @@
|
|
|
import json
|
|
|
import time
|
|
|
|
|
|
-import asyncio
|
|
|
-
|
|
|
from applications.config import Config
|
|
|
from applications.log import logging
|
|
|
from applications.functions.pqFunctions import publish_to_pq, get_pq_video_detail
|
|
@@ -412,6 +410,12 @@ class NewContentIdTask(object):
|
|
|
)
|
|
|
return False
|
|
|
try:
|
|
|
+ logging(
|
|
|
+ code="spider_1001",
|
|
|
+ info="开始执行搜索任务",
|
|
|
+ trace_id=trace_id,
|
|
|
+ data=kimi_result
|
|
|
+ )
|
|
|
search_videos_count = await search_videos_from_web(
|
|
|
info={
|
|
|
"ori_title": kimi_result['ori_title'],
|
|
@@ -427,6 +431,12 @@ class NewContentIdTask(object):
|
|
|
)
|
|
|
if search_videos_count >= 3:
|
|
|
# 表示爬虫任务执行成功, 将状态从 101 改为 2
|
|
|
+ logging(
|
|
|
+ code="spider_1002",
|
|
|
+ info="搜索成功",
|
|
|
+ trace_id=trace_id,
|
|
|
+ data=kimi_result
|
|
|
+ )
|
|
|
await self.update_content_status(
|
|
|
new_content_status=self.TASK_SPIDER_FINISHED_STATUS,
|
|
|
trace_id=trace_id,
|
|
@@ -434,6 +444,12 @@ class NewContentIdTask(object):
|
|
|
)
|
|
|
return True
|
|
|
else:
|
|
|
+ logging(
|
|
|
+ code="spider_1003",
|
|
|
+ info="搜索失败",
|
|
|
+ trace_id=trace_id,
|
|
|
+ data=kimi_result
|
|
|
+ )
|
|
|
await self.roll_back_content_status_when_fails(
|
|
|
process_times=process_times + 1,
|
|
|
trace_id=trace_id
|
|
@@ -520,38 +536,67 @@ class NewContentIdTask(object):
|
|
|
platform=params['platform'],
|
|
|
video_url=params['video_url']
|
|
|
)
|
|
|
- # download cover
|
|
|
- cover_path = await download_cover(
|
|
|
- file_path=local_cover_path,
|
|
|
- platform=params['platform'],
|
|
|
- cover_url=params['cover_url']
|
|
|
- )
|
|
|
- oss_video = await upload_to_oss(
|
|
|
- local_video_path=file_path,
|
|
|
- download_type="video"
|
|
|
- )
|
|
|
- if cover_path:
|
|
|
- oss_cover = await upload_to_oss(
|
|
|
- local_video_path=cover_path,
|
|
|
- download_type="image"
|
|
|
- )
|
|
|
- else:
|
|
|
- oss_cover = None
|
|
|
- update_sql = f"""
|
|
|
+ if not file_path:
|
|
|
+ # 说明视频下载失败,无需上传该视频, 将该条记录设置为失败状态
|
|
|
+ update_sql = f"""
|
|
|
UPDATE {self.article_crawler_video_table}
|
|
|
- SET video_oss_path = %s, cover_oss_path = %s, download_status = %s
|
|
|
+ SET download_status = %s
|
|
|
WHERE id = %s;
|
|
|
- """
|
|
|
- await self.mysql_client.async_insert(
|
|
|
- sql=update_sql,
|
|
|
- params=(
|
|
|
- oss_video,
|
|
|
- oss_cover,
|
|
|
- VIDEO_DOWNLOAD_SUCCESS_STATUS,
|
|
|
- params['id']
|
|
|
+ """
|
|
|
+ await self.mysql_client.async_insert(
|
|
|
+ sql=update_sql,
|
|
|
+ params=(VIDEO_DOWNLOAD_FAIL_STATUS, params['id'])
|
|
|
)
|
|
|
- )
|
|
|
- downloaded_count += 1
|
|
|
+ logging(
|
|
|
+ code="etl_1001",
|
|
|
+ info="etl_下载视频失败",
|
|
|
+ trace_id=trace_id,
|
|
|
+ function="etl_task"
|
|
|
+ )
|
|
|
+ else:
|
|
|
+ # download cover
|
|
|
+ cover_path = await download_cover(
|
|
|
+ file_path=local_cover_path,
|
|
|
+ platform=params['platform'],
|
|
|
+ cover_url=params['cover_url']
|
|
|
+ )
|
|
|
+ # upload video to oss
|
|
|
+ oss_video = await upload_to_oss(
|
|
|
+ local_video_path=file_path,
|
|
|
+ download_type="video"
|
|
|
+ )
|
|
|
+ # upload cover to oss
|
|
|
+ if cover_path:
|
|
|
+ oss_cover = await upload_to_oss(
|
|
|
+ local_video_path=cover_path,
|
|
|
+ download_type="image"
|
|
|
+ )
|
|
|
+ else:
|
|
|
+ oss_cover = None
|
|
|
+
|
|
|
+ # change status to success
|
|
|
+ update_sql = f"""
|
|
|
+ UPDATE {self.article_crawler_video_table}
|
|
|
+ SET video_oss_path = %s, cover_oss_path = %s, download_status = %s
|
|
|
+ WHERE id = %s;
|
|
|
+ """
|
|
|
+ await self.mysql_client.async_insert(
|
|
|
+ sql=update_sql,
|
|
|
+ params=(
|
|
|
+ oss_video,
|
|
|
+ oss_cover,
|
|
|
+ VIDEO_DOWNLOAD_SUCCESS_STATUS,
|
|
|
+ params['id']
|
|
|
+ )
|
|
|
+ )
|
|
|
+ downloaded_count += 1
|
|
|
+ logging(
|
|
|
+ code="etl_1002",
|
|
|
+ info="etl_视频下载成功",
|
|
|
+ trace_id=trace_id,
|
|
|
+ function="etl_task"
|
|
|
+ )
|
|
|
+ # 如果下载的视频数已经大于3, 则直接退出循环,修改状态为ETL成功状态
|
|
|
if downloaded_count > 3:
|
|
|
await self.update_content_status(
|
|
|
ori_content_status=self.TASK_PROCESSING_STATUS,
|
|
@@ -569,6 +614,12 @@ class NewContentIdTask(object):
|
|
|
sql=update_sql,
|
|
|
params=(VIDEO_DOWNLOAD_FAIL_STATUS, params['id'])
|
|
|
)
|
|
|
+ logging(
|
|
|
+ code="etl_1001",
|
|
|
+ info="etl_下载视频失败",
|
|
|
+ trace_id=trace_id,
|
|
|
+ function="etl_task"
|
|
|
+ )
|
|
|
if downloaded_count >= 3:
|
|
|
await self.update_content_status(
|
|
|
ori_content_status=self.TASK_PROCESSING_STATUS,
|