feat: 添加 update_video_stats_async 方法以支持异步更新视频统计信息

This commit is contained in:
晓丰 2025-05-23 00:02:09 +08:00
parent 95fed6b6c8
commit 9d1e2033c7
2 changed files with 16 additions and 4 deletions

13
DB.py
View File

@ -591,7 +591,6 @@ class DBSA:
def update_video_stats(cls, locator:dict, stats:dict) -> int: def update_video_stats(cls, locator:dict, stats:dict) -> int:
""" """
立即更新 sh_dm_video_v2 表中的统计字段 立即更新 sh_dm_video_v2 表中的统计字段
:param locator: 用于定位行的字典必须包含: v_xid, rn :param locator: 用于定位行的字典必须包含: v_xid, rn
:param stats: 需要更新的统计字段 {"fans": 633, "videos": 10090, "view": 1678408} :param stats: 需要更新的统计字段 {"fans": 633, "videos": 10090, "view": 1678408}
:return: 受影响的行数 :return: 受影响的行数
@ -614,3 +613,15 @@ class DBSA:
with _engine.begin() as conn: with _engine.begin() as conn:
result = conn.execute(stmt) result = conn.execute(stmt)
return result.rowcount return result.rowcount
@classmethod
def update_video_stats_async(cls, locator:dict, stats:dict) -> None:
"""
异步更新 sh_dm_video_v2 表中的统计字段立即返回不阻塞调用线程
"""
thread = threading.Thread(
target=cls.update_video_stats,
args=(locator, stats),
daemon=True
)
thread.start()

View File

@ -7,7 +7,7 @@ from threading import Lock
import requests import requests
from flask import Flask, request, jsonify from flask import Flask, request, jsonify
from requests import RequestException from requests import RequestException
from DB import DBVidcon from DB import DBVidcon, DBSA
db = DBVidcon() db = DBVidcon()
app = Flask(__name__) app = Flask(__name__)
@ -204,6 +204,7 @@ def submit():
print(f"收到请求: {v_xid}, {rn}") print(f"收到请求: {v_xid}, {rn}")
headers = gettoken(proxy_code) headers = gettoken(proxy_code)
results = get_videoInfo(v_xid, proxy_code, headers) results = get_videoInfo(v_xid, proxy_code, headers)
DBSA.update_video_stats(data, results)
return jsonify({ return jsonify({
"results": results "results": results
}), 200 }), 200