Stop only waiting validation tasks

This commit is contained in:
zhouyuanxi
2026-07-25 15:30:17 +08:00
parent 4f0725332e
commit 1bdff3d2e8
2 changed files with 6 additions and 6 deletions

View File

@@ -1,6 +1,6 @@
# xc_validation_strategy_vllm_stop
用于停止 `zhoukaile` 账号当前全部活跃验证任务的 ModelHub XC 策略服务。
用于停止 `zhoukaile` 账号当前状态为 `waiting`验证任务的 ModelHub XC 策略服务。
服务启动后会调用:
@@ -38,7 +38,7 @@ USER_PASSWORD=<zhoukaile 的登录密码>
## 运行与构建
仓库根目录的 `Dockerfile` 使用平台 Python 基础镜像,暴露 `8080` 端口并以 `python main.py` 启动。策略构建时请将 `XC_TOKEN``USER_PASSWORD` 都设置为机密变量;构建成功后,策略会先分页读取当前账号的全部活跃任务,再分批停止。
仓库根目录的 `Dockerfile` 使用平台 Python 基础镜像,暴露 `8080` 端口并以 `python main.py` 启动。策略构建时请将 `XC_TOKEN``USER_PASSWORD` 都设置为机密变量;构建成功后,策略会先分页读取当前账号的全部任务,仅筛选状态为 `waiting` 的任务再分批停止。
本地验证:

View File

@@ -1,4 +1,4 @@
"""Stop zhoukaile's active ModelHub XC validation tasks.
"""Stop zhoukaile's waiting ModelHub XC validation tasks.
The service performs the stop requests once at startup and then stays alive so
the strategy platform can probe it through ``/health`` and inspect ``/status``.
@@ -31,7 +31,7 @@ MAX_RETRIES = int(os.environ.get("MAX_RETRIES", "3"))
REQUEST_TIMEOUT = int(os.environ.get("REQUEST_TIMEOUT", "30"))
PAGE_SIZE = 100
ACTIVE_STATUSES = {"waiting", "running", "pending", "processing", "queued"}
STOPPABLE_STATUS = "waiting"
_shutdown = threading.Event()
_state: dict[str, Any] = {
@@ -89,7 +89,7 @@ def _login() -> str:
def _current_task_ids() -> list[int]:
"""Fetch every active task currently submitted by USER_ACCOUNT.
"""Fetch every waiting task currently submitted by USER_ACCOUNT.
This intentionally queries the user-facing task page at run time. A static
list becomes obsolete as soon as zhoukaile submits more validation tasks.
@@ -114,7 +114,7 @@ def _current_task_ids() -> list[int]:
data = result.get("data") or {}
records = data.get("records") or []
for record in records:
if str(record.get("status", "")).lower() not in ACTIVE_STATUSES:
if str(record.get("status", "")).lower() != STOPPABLE_STATUS:
continue
try:
task_ids.append(int(record["taskId"]))