修正接口故障时程序报错的问题
This commit is contained in:
39
main.py
39
main.py
@ -16,10 +16,6 @@ from config.settings import (
|
||||
)
|
||||
from utils.helpers import cleanup_old_timestamps
|
||||
|
||||
# 假设同事提供的函数
|
||||
def save_to_custom_table(misid, flag, task_id, produce_mix_id, project_name, beton_grade, adjusted_volume, artifact_id):
|
||||
"""保存到自定义数据表的函数"""
|
||||
print(f"保存到自定义数据表: MISID={misid}, Flag={flag}, TaskID={task_id}, 调整后方量={adjusted_volume}")
|
||||
|
||||
def start_api_service():
|
||||
"""启动配比重量API服务"""
|
||||
@ -52,7 +48,10 @@ def main():
|
||||
|
||||
# 步骤1:获取AppID
|
||||
app_id = api_client.login()
|
||||
task_service.api_client.app_id = app_id
|
||||
if app_id is None:
|
||||
print("无法获取AppID,将在稍后重试...")
|
||||
else:
|
||||
task_service.api_client.app_id = app_id
|
||||
|
||||
# 存储上次获取的所有ArtifactID
|
||||
last_artifact_ids = set()
|
||||
@ -65,8 +64,27 @@ def main():
|
||||
|
||||
while True:
|
||||
try:
|
||||
# 步骤2:获取所有未浇筑信息
|
||||
# 如果没有有效的app_id,尝试重新登录
|
||||
if task_service.api_client.app_id is None:
|
||||
print("尝试重新登录获取AppID...")
|
||||
app_id = api_client.login()
|
||||
if app_id is not None:
|
||||
task_service.api_client.app_id = app_id
|
||||
print("重新登录成功")
|
||||
else:
|
||||
print("重新登录失败,稍后重试...")
|
||||
time.sleep(10) # 等待10秒再重试
|
||||
continue
|
||||
|
||||
# 获取所有未浇筑信息
|
||||
tasks, artifact_list, send_list, half_volume = task_service.process_not_pour_info()
|
||||
|
||||
# 如果API调用失败,等待一段时间再重试
|
||||
if tasks is None or artifact_list is None:
|
||||
print("获取未浇筑信息失败,稍后重试...")
|
||||
time.sleep(10)
|
||||
continue
|
||||
|
||||
current_artifact_ids = {task["artifact_id"] for task in tasks}
|
||||
|
||||
# 检查artifact_list是否发生变化
|
||||
@ -81,8 +99,13 @@ def main():
|
||||
for task in tasks:
|
||||
if task["artifact_id"] in new_artifact_ids:
|
||||
task_info = api_client.get_task_info(task["beton_task_id"])
|
||||
|
||||
# 如果获取任务信息失败,跳过该任务
|
||||
if task_info is None:
|
||||
print(f"无法获取任务信息,跳过任务: {task['artifact_id']}")
|
||||
continue
|
||||
|
||||
# 步骤4:连接Access数据库并获取最大Mark值
|
||||
# 连接Access数据库并获取最大Mark值
|
||||
access_db = AccessDB(ACCESS_DB_PATH, ACCESS_DB_PASSWORD)
|
||||
try:
|
||||
max_mark = access_db.get_max_mark()
|
||||
@ -91,7 +114,7 @@ def main():
|
||||
|
||||
erp_id = int(max_mark) + 1
|
||||
|
||||
# 步骤5:连接SQL Server数据库并插入数据
|
||||
# 连接SQL Server数据库并插入数据
|
||||
sql_db = SQLServerDB()
|
||||
try:
|
||||
# 检查 block_number 是否为 "补方"
|
||||
|
||||
Reference in New Issue
Block a user