diff --git a/app/api/test.py b/app/api/test.py new file mode 100644 index 0000000..eb4c329 --- /dev/null +++ b/app/api/test.py @@ -0,0 +1,55 @@ +from fastapi import APIRouter, Depends +from sqlalchemy.orm import Session +from ..core.database import get_db +from ..core.response_code import ResponseCode +from ..schemas.comprehensive_data import DataResponse +import logging +from ..services.daily import DailyDataService +from ..services.checkpoint import CheckpointService +from ..services.settlement_data import SettlementDataService +from ..utils.scheduler import scheduled_get_max_nyid_by_point_id +# 导入全局定时任务调度器实例和目标任务函数 +from ..utils.scheduler import task_scheduler, scheduled_get_max_nyid_by_point_id + +router = APIRouter(prefix="/test", tags=["测试"]) +logger = logging.getLogger(__name__) + +@router.get("/trigger_max_nyid_task", response_model=DataResponse) +def trigger_max_nyid_task(db: Session = Depends(get_db)): + """接口:直接触发调度器中的 scheduled_get_max_nyid_by_point_id 定时任务""" + try: + # 触发任务执行 + # task_scheduler.run_job(scheduled_get_max_nyid_by_point_id.__name__) + # settlement = SettlementDataService() + # # 获取模型实例列表 + # checkpoint_instances = settlement.get_by_nyid(db, nyid="4993546") + # # 转为字典列表(核心修正) + # checkpoint_data = [instance.__dict__ for instance in checkpoint_instances] + # # 清理 SQLAlchemy 内部属性(可选,避免多余字段) + # checkpoint_data = [{k: v for k, v in item.items() if not k.startswith('_sa_')} for item in checkpoint_data] + + # return DataResponse( + # code=ResponseCode.SUCCESS, + # message="定时任务触发执行成功!任务已开始处理(具体结果查看系统日志)", + # total=len(checkpoint_data), # 修正为实际数据长度 + # data=checkpoint_data + # ) + + # scheduled_get_max_nyid_by_point_id() + daily_service = DailyDataService() + daily_data = daily_service.get_daily_data_by_account(db,account_id=1) + + return DataResponse( + code=ResponseCode.SUCCESS, + message="定时任务触发执行成功!任务已开始处理(具体结果查看系统日志)", + total=1, + data=daily_data + ) + except Exception as e: + logger.error(f"接口触发定时任务失败:{str(e)}", exc_info=True) + return DataResponse( + code=ResponseCode.QUERY_FAILED, + message=f"定时任务触发失败:{str(e)}", + total=0, + data={} + ) \ No newline at end of file diff --git a/deploy.sh b/deploy.sh index 7bca707..2a22a48 100644 --- a/deploy.sh +++ b/deploy.sh @@ -37,11 +37,12 @@ if [ $SKIP_GIT_PULL -eq 0 ]; then fi # 读取sudo密码 -echo "" -echo -n "请输入sudo密码: " -read -s SUDO_PASSWORD -echo "" -echo "" +# echo "" +# echo -n "请输入sudo密码: " +# read -s SUDO_PASSWORD +# echo "" +# echo "" +SUDO_PASSWORD="yuxinda01" # 检查密码是否为空 if [ -z "$SUDO_PASSWORD" ]; then echo "错误: 密码不能为空" diff --git a/your_database.db b/your_database.db new file mode 100644 index 0000000..e69de29