Compare commits

..

2 Commits

2 changed files with 16 additions and 4 deletions

15
DB.py
View File

@ -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: 受影响的行数
@ -613,4 +612,16 @@ class DBSA:
)
with _engine.begin() as conn:
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
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_async(data, results)
return jsonify({
"results": results
}), 200