liyuyi@c-top.com.cn 3 роки тому
батько
коміт
e1a5c2fce0
6 змінених файлів з 62 додано та 18 видалено
  1. 0 3
      asr_client.py
  2. 4 4
      config/config.yaml
  3. 15 3
      database.py
  4. 28 2
      main.py
  5. 0 0
      time_task/__init__.py
  6. 15 6
      time_task/get_material_and_script_by_query_word.py

+ 0 - 3
asr_client.py

@@ -37,8 +37,6 @@ def send_asr_request(url):
         req.from_json_string(json.dumps(params))
 
         resp = client.CreateRecTask(req)
-        print(resp.to_json_string())
-        # return resp.to_json_string()
         return resp
 
     except TencentCloudSDKException as err:
@@ -59,7 +57,6 @@ def send_task_request(taskId):
         req.from_json_string(json.dumps(params))
 
         resp = client.DescribeTaskStatus(req)
-        print(resp.to_json_string())
         return resp
 
     except TencentCloudSDKException as err:

+ 4 - 4
config/config.yaml

@@ -54,10 +54,10 @@ ai_word_dev_db:
 
 # db_ai_word 生产数据库
 ai_word_product_db:
-  host: 139.186.165.84
-  user: hcst
-  password: hcst@2020
-  port: 3306
+  host: 139.186.27.96
+  user: data
+  password: hcst@2021
+  port: 3390
   database: db_ai_word
   charset: utf8mb4
 

+ 15 - 3
database.py

@@ -1,11 +1,15 @@
 # 导入:
+import uuid
 from datetime import datetime
 from urllib import parse
 
-from sqlalchemy import Column, Integer, String, DateTime, Text, create_engine, and_
+import yaml
+from sqlalchemy import Column, Integer, String, DateTime, Text, and_
 from sqlalchemy.ext.declarative import declarative_base
 from sqlalchemy.orm import sessionmaker
 
+from common_func import get_db_engine
+
 # 创建对象的基类:
 Base = declarative_base()
 passowrd = parse.quote_plus('hcst@2020')
@@ -29,7 +33,16 @@ class Task(Base):
 
 
 # 初始化数据库连接:
-engine = create_engine('mysql+mysqlconnector://hcst:' + passowrd + '@139.186.165.84:3306/db_ai_word')
+with open('/data/pythonProject/video_to_word/config/config.yaml', mode='r', encoding='utf-8') as f:
+    config = yaml.load(f.read(), Loader=yaml.FullLoader)
+
+# 1-1 数据库连接引擎,依据开发环境/生产环境 进行切换
+mac = uuid.UUID(int=uuid.getnode()).hex[-12:]
+if mac in ['5254003fa716', '52540003f5dd']:
+    engine = get_db_engine(config['ai_word_dev_db'])
+else:
+    engine = get_db_engine(config['ai_word_product_db'])
+
 # 创建DBSession类型:
 DBSession = sessionmaker(bind=engine)
 
@@ -47,7 +60,6 @@ def query(signature, task_status, task_id):
     # 创建Query查询,filter是where条件,最后调用one()返回唯一行,如果调用all()则返回所有行:
     task = session.query(Task).filter(condition).order_by(Task.create_time.desc()).all()
     # 关闭Session:
-    print(task)
     session.close()
     return task
 

+ 28 - 2
main.py

@@ -7,7 +7,8 @@ from datetime import timedelta
 from io import BytesIO
 from typing import Optional, List
 from urllib.parse import quote
-
+import os
+import sys
 import pandas as pd
 import uvicorn
 import yaml
@@ -17,13 +18,18 @@ from fastapi.responses import StreamingResponse
 from loguru import logger
 from pydantic import BaseModel, Field
 
+curr_path = os.path.abspath(os.path.dirname(__file__))
+project_root_path = curr_path[:curr_path.find("video_to_word") + len("video_to_word")]
+sys.path.append(project_root_path)
+
 from asr_client import send_asr_request, send_task_request
 from common_func import get_db_engine
 from config.url import toutiao_static_video_url
 from database import insert, update, query, Task
+from time_task.get_material_and_script_by_query_word import get_material_and_script
 
 logger.remove()  # 删去 import logger之后自动产生的handler,不删除的话会出现重复输出的现象
-logger.add("logs/loguru.{time:YYYY-MM-DD}.log",
+logger.add("/data/pythonProject/video_to_word/logs/main_server.{time:YYYY-MM-DD}.log",
            rotation="00:00",
            format="{time:YYYY-MM-DD HH:mm:ss,SSS} [{process}] [{thread}] {level} {file} {line} - {message}",
            level="INFO")
@@ -367,6 +373,26 @@ def add_script_config(item: AddScriptConfig):
                 "success": False}
 
 
+@logger.catch
+@app.post('/get_material_and_script_time_task/',
+          response_model=BaseResponse,
+          tags=['back-end task'],
+          description="获取素材和脚本任务",
+          summary='获取素材和脚本任务')
+def get_material_and_script_time_task():
+    try:
+        get_material_and_script()
+        logger.info(f"{date.today().strftime('%Y-%m-%d')}, 获取素材和脚本任务执行完成.")
+        return {"code": 0,
+                "success": True,
+                "message": f"{date.today().strftime('%Y-%m-%d')},获取素材和脚本任务执行完成."}
+    except:
+        logger.error(f"{date.today().strftime('%Y-%m-%d')}, 获取素材和脚本任务执行发生异常. {traceback.format_exc()}")
+        return {"code": -1,
+                "success": False,
+                "message": f"{date.today().strftime('%Y-%m-%d')},获取素材和脚本任务执行发生异常 .{traceback.format_exc()}"}
+
+
 if __name__ == '__main__':
     uvicorn.run(app='main:app', host="0.0.0.0", port=31013, reload=True, debug=True)
 # gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker #线上启动命令

+ 0 - 0
time_task/__init__.py


+ 15 - 6
time_task/get_material_and_script_by_query_word.py

@@ -3,6 +3,7 @@ import os
 import sys
 import traceback
 import uuid
+from datetime import date
 import pandas as pd
 import yaml
 from loguru import logger
@@ -16,13 +17,8 @@ from get_material_and_script.get_material_from_kuaishou_kaiyan import GetMateria
 from get_material_and_script.get_material_from_ocean_engine import GetMaterialFromOceanEngine
 from get_material_and_script.get_material_from_huichuang import GetMaterialFromHuiChuang
 
-if __name__ == '__main__':
-    # 创建日志对象
-    logger.add("logs/get_high_quality_material.{time:YYYY-MM-DD}.log",
-               rotation="00:00",
-               format="{time:YYYY-MM-DD HH:mm:ss,SSS} [{process}] [{thread}] {level} {file} {line} - {message}",
-               level="INFO")
 
+def get_material_and_script():
     # 1 读取配置文件
     with open('/data/pythonProject/video_to_word/config/config.yaml', mode='r', encoding='utf-8') as f:
         config = yaml.load(f.read(), Loader=yaml.FullLoader)
@@ -117,3 +113,16 @@ if __name__ == '__main__':
                         conn.execute(sql)
                     logger.error(f"查询词:{query_word} 数据来源: {source_code} 日期: {datetime.datetime.today().strftime('%Y-%m-%d')},"
                                  f"执行异常: {traceback.format_exc()}")
+
+
+if __name__ == '__main__':
+    logger.remove()
+    logger.add("/data/pythonProject/video_to_word/logs/get_high_quality_material.{time:YYYY-MM-DD}.log",
+               rotation="00:00",
+               format="{time:YYYY-MM-DD HH:mm:ss,SSS} [{process}] [{thread}] {level} {file} {line} - {message}",
+               level="INFO")
+    try:
+        get_material_and_script()
+        logger.info(f"{date.today().strftime('%Y-%m-%d')}, 获取素材和脚本任务执行完成.")
+    except:
+        logger.error(f"{date.today().strftime('%Y-%m-%d')}, 获取素材和脚本任务执行发生异常. {traceback.format_exc()}")