feat: 添加 update_video_stats_async 方法以支持异步更新视频统计信息
This commit is contained in:
parent
95fed6b6c8
commit
9d1e2033c7
13
DB.py
13
DB.py
@ -591,7 +591,6 @@ class DBSA:
|
||||
def update_video_stats(cls, locator:dict, stats:dict) -> int:
|
||||
"""
|
||||
立即更新 sh_dm_video_v2 表中的统计字段。
|
||||
|
||||
:param locator: 用于定位行的字典,必须包含: v_xid, rn
|
||||
:param stats: 需要更新的统计字段,如 {"fans": 633, "videos": 10090, "view": 1678408}
|
||||
:return: 受影响的行数
|
||||
@ -614,3 +613,15 @@ class DBSA:
|
||||
with _engine.begin() as conn:
|
||||
result = conn.execute(stmt)
|
||||
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()
|
@ -7,7 +7,7 @@ from threading import Lock
|
||||
import requests
|
||||
from flask import Flask, request, jsonify
|
||||
from requests import RequestException
|
||||
from DB import DBVidcon
|
||||
from DB import DBVidcon, DBSA
|
||||
|
||||
db = DBVidcon()
|
||||
app = Flask(__name__)
|
||||
@ -150,7 +150,7 @@ def gettoken(proxy, r=2):
|
||||
return copy.deepcopy(headers1)
|
||||
|
||||
|
||||
def get_videoInfo(x_id, proxy_name,headers, r=3):
|
||||
def get_videoInfo(x_id, proxy_name, headers, r=3):
|
||||
payload = {
|
||||
"operationName": "WATCHING_VIDEO",
|
||||
"variables": {
|
||||
@ -204,6 +204,7 @@ def submit():
|
||||
print(f"收到请求: {v_xid}, {rn}")
|
||||
headers = gettoken(proxy_code)
|
||||
results = get_videoInfo(v_xid, proxy_code, headers)
|
||||
DBSA.update_video_stats(data, results)
|
||||
return jsonify({
|
||||
"results": results
|
||||
}), 200
|
||||
|
Loading…
x
Reference in New Issue
Block a user