|
|
@@ -1,3 +1,4 @@
|
|
|
+import json
|
|
|
from loguru import logger
|
|
|
import sys
|
|
|
import time
|
|
|
@@ -62,19 +63,35 @@ def decode_task_status_handler():
|
|
|
current_timestamp = int(time.time() * 1000)
|
|
|
|
|
|
decode_result = invoke_decode_workflow(task_params)
|
|
|
+ logger.info(f" 🐔 结构结果: decode_result = {decode_result}")
|
|
|
+
|
|
|
+ # 根据返回结果判断任务状态:仅当 status==2 时置为完成,否则置为失败
|
|
|
+ status_code = None
|
|
|
+ if isinstance(decode_result, dict):
|
|
|
+ raw_status = decode_result.get("status")
|
|
|
+ if raw_status is not None:
|
|
|
+ try:
|
|
|
+ status_code = int(raw_status)
|
|
|
+ except Exception:
|
|
|
+ status_code = 3
|
|
|
+ elif decode_result.get("workflow_status") in ("failed", "incomplete") or decode_result.get("error"):
|
|
|
+ status_code = 3
|
|
|
+ else:
|
|
|
+ status_code = 2
|
|
|
+ else:
|
|
|
+ status_code = 2 if decode_result else 3
|
|
|
|
|
|
- if decode_result:
|
|
|
- # 更新任务状态为2,任务完成
|
|
|
+ elapsed = current_timestamp - task_create_timestamp
|
|
|
+ if status_code == 2:
|
|
|
sql = "UPDATE decode_record SET task_status = 2 WHERE task_id = %s"
|
|
|
mysql.execute(sql, (task_id,))
|
|
|
- logger.info(f"task_id = {task_id} , decode_result = {decode_result}")
|
|
|
-
|
|
|
-
|
|
|
+ logger.info(f"task_id = {task_id} , 任务完成,更新为2")
|
|
|
+ elif elapsed > 1000 * 60 * 60:
|
|
|
+ sql = "UPDATE decode_record SET task_status = 3 WHERE task_id = %s"
|
|
|
+ mysql.execute(sql, (task_id,))
|
|
|
+ logger.info(f"task_id = {task_id} ,任务超时,更新为3")
|
|
|
else:
|
|
|
- if current_timestamp - task_create_timestamp > 1000 * 60 * 60:
|
|
|
- sql = "UPDATE decode_record SET task_status = 3 WHERE task_id = %s"
|
|
|
- mysql.execute(sql, (task_id,))
|
|
|
- logger.info(f"task_id = {task_id} ,任务状态异常")
|
|
|
+ logger.info(f"task_id = {task_id} ,未成功且未超时,保持状态1")
|
|
|
except Exception as e:
|
|
|
logger.error(f"task_id = {task_id} , error = {e}")
|
|
|
sql = "UPDATE decode_record SET task_status = 3 WHERE task_id = %s"
|
|
|
@@ -83,6 +100,6 @@ def decode_task_status_handler():
|
|
|
raise RuntimeError(f"task_id={task_id} 任务异常: {e}")
|
|
|
|
|
|
|
|
|
-if __name__ == "__main__":
|
|
|
- decode_task_status_handler()
|
|
|
+# if __name__ == "__main__":
|
|
|
+# decode_task_status_handler()
|
|
|
|