From 0435df9a8402cee9f1738fb2a8cb0ee0c1119460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E5=AE=87=E4=BD=B3?= Date: Thu, 27 Feb 2025 14:54:44 +0800 Subject: [PATCH] =?UTF-8?q?FIX=20DB=E4=BF=AE=E6=94=B9job=5Fid=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=EF=BC=8C=E5=A2=9E=E5=8A=A0status=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __init__.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/__init__.py b/__init__.py index 0468f2d..990c662 100644 --- a/__init__.py +++ b/__init__.py @@ -319,9 +319,10 @@ class Task(Base): id = Column(Integer, primary_key=True) gmt_create = Column(DateTime(timezone=True), server_default=func.now()) gmt_modified = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now()) - prompt_id = Column(String, index=True, nullable=False) + prompt_id = Column(String, index=True, nullable=False, unique=True) result = Column(String, nullable=True) - job_id = Column(String, index=True, nullable=False) + job_id = Column(Integer, index=True, nullable=False, unique=True) + status = Column(Integer) def __repr__(self): return f"{self.id},{self.gmt_create},{self.gmt_modified},{self.prompt_id},{self.result}" @@ -334,6 +335,7 @@ class LogToDB: "required": { "job_id": ("STRING",{"forceInput": True}), "log": ("STRING",{"forceInput": True}), + "status": ("INT",{"default": 1, "max": 1}), }, "hidden": { "unique_id": "UNIQUE_ID", @@ -351,7 +353,8 @@ class LogToDB: CATEGORY = "不忘科技-自定义节点🚩" - def log2db(self, job_id, log, unique_id): + def log2db(self, job_id, log, status, unique_id): + job_id = int(job_id) # 获取comfy服务器队列信息 (_, prompt_id, prompt, extra_data, outputs_to_execute) = next( iter(server.PromptServer.instance.prompt_queue.currently_running.values())) @@ -371,11 +374,12 @@ class LogToDB: } if len(tasks) == 0: # 不存在插入 - task = Task(prompt_id=prompt_id, job_id=job_id, result=json.dumps(result)) + task = Task(prompt_id=prompt_id, job_id=job_id, result=json.dumps(result), status=status) session.add(task) elif len(tasks) == 1: # 存在更新 - session.query(Task).filter(Task.prompt_id == prompt_id).update({"result": json.dumps(result)}) + session.query(Task).filter(Task.prompt_id == prompt_id).update({"result": json.dumps(result), + "status": status}) else: # 异常报错 raise RuntimeError("状态数据库prompt_id不唯一, 无法记录状态!")