代码优化

This commit is contained in:
liujianjiang 2025-11-27 16:00:41 +08:00
parent 93e016b8d6
commit ffc5c5bf90
2 changed files with 52 additions and 21 deletions

51
main.py
View File

@ -8,8 +8,7 @@ from typing import Dict, Any, Optional, List
from fastapi import FastAPI, HTTPException, Depends
from public_function.public_func import read_config
from model.model import GoodsInfo, DataReceive
from model.model import AccountCreate, AccountUpdate, DeviceResetData
from model.model import GoodsInfo, DataReceive, AccountCreate, AccountUpdate, DeviceResetData
app = FastAPI()
@ -22,7 +21,7 @@ def get_config():
from public_function.public_func import read_config
return read_config(config_path)
except ImportError:
logger.warning("未找到read_config函数使用默认配置")
print(f"未找到read_config函数使用默认配置")
return {'host': 'localhost', 'port': 3306, 'user': 'root', 'password': 'password', 'db': 'test_db', 'max_overflow': 10}
@ -33,7 +32,7 @@ def get_account_manager():
from account_management.deal_account import DealAccount
return DealAccount(config)
except ImportError:
logger.warning("未找到DealAccount类返回模拟实例")
print(f"未找到DealAccount类返回模拟实例")
return None
@ -44,7 +43,18 @@ def get_task_manager():
from task_management.all_task_management import AllTask
return AllTask(config)
except ImportError:
logger.warning("未找到AllTask类返回模拟实例")
print(f"未找到AllTask类返回模拟实例")
return None
def get_reset_manager():
"""设备重置管理器"""
config = get_config()
try:
from task_management.all_task_management import AllTask
return AllTask(config)
except ImportError:
print("未找到 类,返回模拟实例")
return None
@ -79,7 +89,6 @@ async def add_account(account_data: AccountCreate, account_manager: Any = Depend
- **app_name**: 应用名称
"""
try:
print(account_data.model_dump())
# 这里应该调用实际的添加账号方法
result = await account_manager.add_account([account_data.model_dump()])
if result:
@ -125,7 +134,7 @@ async def receive_data(task_data: DataReceive, task_manager: Any = Depends(get_t
return {"code": 200, "message": "数据保存成功", "data": result}
raise HTTPException(status_code=404, detail="抓取商品数据失败,请重新尝试")
except Exception as e:
print(f"<UNK>: {e}")
print(f"{get_local_time()},商品数据处理失败,失败原因: {e}")
raise HTTPException(status_code=500, detail="获取数据失败;失败原因{}".format(e))
@ -143,20 +152,20 @@ async def get_goods_info(task_data: GoodsInfo, task_manager: Any = Depends(get_t
raise HTTPException(status_code=500, detail="获取数据失败;失败原因{}".format(e))
# @app.get("/device_reset", summary="设备重置")
# async def device_reset(task_data: GoodsInfo, reset_manager: Any = Depends(get_reset_manager)):
# """设备重置接口"""
# try:
# params = task_data.model_dump()
# params['task_id'] = uuid.uuid4().hex
# # 将任务记录到mysql
# # result = await task_manager.task_distribution(params)
# # if result:
# # return {"code": 200, "message": "<UNK>", "data": result}
# raise HTTPException(status_code=404, detail="抓取商品数据失败,请重新尝试")
# except Exception as e:
# print(f"<UNK>: {e}")
# raise HTTPException(status_code=500, detail="获取数据失败;失败原因{}".format(e))
@app.get("/device_reset", summary="设备重置")
async def device_reset(task_data: DeviceResetData, reset_manager: Any = Depends(get_reset_manager)):
"""设备重置接口"""
try:
params = task_data.model_dump()
params['task_id'] = uuid.uuid4().hex
# 将任务记录到mysql
result = await reset_manager.task_distribution(params)
if result:
return {"code": 200, "message": "<UNK>", "data": result}
raise HTTPException(status_code=404, detail="抓取商品数据失败,请重新尝试")
except Exception as e:
print(f"设备重置失败,失败原因: {e}")
raise HTTPException(status_code=500, detail="获取数据失败;失败原因{}".format(e))
if __name__ == '__main__':

View File

@ -1,6 +1,28 @@
# -*- coding: utf-8 -*-
import yaml
import logging
from pathlib import Path
from datetime import datetime
from logging.handlers import TimedRotatingFileHandler
def create_logger():
now_date = datetime.now().strftime('%Y%m%d')
log_filename = os.path.join(Path(__file__).resolve().parent.parent, f'logs/crawler_task_{now_date}.log')
path = Path(log_filename).resolve().parent
os.makedirs(path, exist_ok=True)
logger = logging.getLogger("emu_dsl")
# 防止重复添加handler
if logger.handlers:
return logger
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler = TimedRotatingFileHandler(log_filename, when='midnight', backupCount=7, encoding='utf-8')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)
return logger
def read_config(path):