diff --git a/raylight/scripts/server.py b/raylight/scripts/server.py index 5dbca78..a8e57b4 100644 --- a/raylight/scripts/server.py +++ b/raylight/scripts/server.py @@ -568,7 +568,12 @@ def _comfyui_alive() -> bool: @app.get("/health") def health(): + # queued 统计真正 status=='queued' 的任务,不用 Q.qsize()——取消一条排队中的任务只是把 + # JOBS 里那条的 status 标成 cancelled,不会把它从 Q 摘除,worker 要等真正 Q.get() 到它才 + # 会跳过丢弃(见 worker() 里的注释);qsize() 在那之前会把这些已取消的僵尸 entry 也算 + # 进去,堆量取消时数字会明显偏高,跟 running 的统计口径(数 JOBS 状态)保持一致才准确。 running = sum(1 for j in JOBS.values() if j.status == "running") + queued = sum(1 for j in JOBS.values() if j.status == "queued") comfy_alive = _comfyui_alive() ready = 1 if (STATE["model"] == "ready" and comfy_alive) else 0 model_state = STATE["model"] if comfy_alive else "comfyui_unreachable" @@ -578,14 +583,14 @@ def health(): "gpu": "0,1,2,3", "partition": "raylight-fsdp", # 不再是路由依据,纯展示——4卡是一个集群,没有单卡分区概念了 "offload": "fsdp", - "queued": Q.qsize(), + "queued": queued, "running": running, "backend": BACKEND_URL, } return { "status": "ok" if ready else "unavailable", "ready": ready, "total": 1, - "queued": Q.qsize(), "running": running, + "queued": queued, "running": running, "backends": [backend], "gpus": _gpu_status(), } diff --git a/raylight/server.py b/raylight/server.py index 5dbca78..a8e57b4 100644 --- a/raylight/server.py +++ b/raylight/server.py @@ -568,7 +568,12 @@ def _comfyui_alive() -> bool: @app.get("/health") def health(): + # queued 统计真正 status=='queued' 的任务,不用 Q.qsize()——取消一条排队中的任务只是把 + # JOBS 里那条的 status 标成 cancelled,不会把它从 Q 摘除,worker 要等真正 Q.get() 到它才 + # 会跳过丢弃(见 worker() 里的注释);qsize() 在那之前会把这些已取消的僵尸 entry 也算 + # 进去,堆量取消时数字会明显偏高,跟 running 的统计口径(数 JOBS 状态)保持一致才准确。 running = sum(1 for j in JOBS.values() if j.status == "running") + queued = sum(1 for j in JOBS.values() if j.status == "queued") comfy_alive = _comfyui_alive() ready = 1 if (STATE["model"] == "ready" and comfy_alive) else 0 model_state = STATE["model"] if comfy_alive else "comfyui_unreachable" @@ -578,14 +583,14 @@ def health(): "gpu": "0,1,2,3", "partition": "raylight-fsdp", # 不再是路由依据,纯展示——4卡是一个集群,没有单卡分区概念了 "offload": "fsdp", - "queued": Q.qsize(), + "queued": queued, "running": running, "backend": BACKEND_URL, } return { "status": "ok" if ready else "unavailable", "ready": ready, "total": 1, - "queued": Q.qsize(), "running": running, + "queued": queued, "running": running, "backends": [backend], "gpus": _gpu_status(), }