|
@@ -60,16 +60,25 @@ def create_task_record(demand_content_id: int, trace_id: str = "", status: int =
|
|
|
在 demand_find_task 中新增一条记录。
|
|
在 demand_find_task 中新增一条记录。
|
|
|
|
|
|
|
|
初始创建时 trace_id 可置为空字符串,任务完成后通过 update_task_on_complete 更新。
|
|
初始创建时 trace_id 可置为空字符串,任务完成后通过 update_task_on_complete 更新。
|
|
|
|
|
+
|
|
|
|
|
+ 若 uk_trace_demand 冲突:仅当原行 status 为失败时,将 trace_id/status 重置为本次插入值
|
|
|
|
|
+ (用于上次失败且 trace_id 仍为空时,定时任务会再次选中同一需求,不能重复 INSERT 空 trace)。
|
|
|
"""
|
|
"""
|
|
|
sql = """
|
|
sql = """
|
|
|
INSERT INTO demand_find_task (trace_id, demand_content_id, status)
|
|
INSERT INTO demand_find_task (trace_id, demand_content_id, status)
|
|
|
VALUES (%s, %s, %s)
|
|
VALUES (%s, %s, %s)
|
|
|
|
|
+ ON DUPLICATE KEY UPDATE
|
|
|
|
|
+ trace_id = IF(status = %s, VALUES(trace_id), trace_id),
|
|
|
|
|
+ status = IF(status = %s, VALUES(status), status)
|
|
|
"""
|
|
"""
|
|
|
conn = None
|
|
conn = None
|
|
|
try:
|
|
try:
|
|
|
conn = get_connection()
|
|
conn = get_connection()
|
|
|
with conn.cursor() as cur:
|
|
with conn.cursor() as cur:
|
|
|
- cur.execute(sql, (trace_id, demand_content_id, status))
|
|
|
|
|
|
|
+ cur.execute(
|
|
|
|
|
+ sql,
|
|
|
|
|
+ (trace_id, demand_content_id, status, STATUS_FAILED, STATUS_FAILED),
|
|
|
|
|
+ )
|
|
|
logger.info(f"创建任务记录: demand_content_id={demand_content_id}")
|
|
logger.info(f"创建任务记录: demand_content_id={demand_content_id}")
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
logger.error(f"create_task_record 失败: {e}", exc_info=True)
|
|
logger.error(f"create_task_record 失败: {e}", exc_info=True)
|