构建状态增加平台终态只读核对,修复回调丢失后任务长期卡在构建中
工作流在脚本收尾前失败(拉取/编译/runner 异常)或 GENURL 不可达时, 结束回调会永久丢失,而等待页 30 秒轮询与列表页此前只读本地库, 任务只能等 6 小时本地超时,平台侧已失败也无法及时反映。 - GitHub/Gitea 后端新增只读 get_run(),仅在平台报告终态时返回结论, 在途、非 200、网络异常、坏 JSON 一律返回 None;不取消、不写平台 - 等待页 30 秒轮询同步核对一次真实状态:20 秒节流、6 秒超时、异常静默 - 我的构建/后台仪表盘改为后台守护线程核对,页面渲染零等待 - 仅做非终态到终态的条件更新,回调抢先到达时不会被覆盖 - 停止/删除纯本地语义、6 小时本地超时兜底等现有逻辑保持不变
This commit is contained in:
@@ -18,6 +18,14 @@ class DispatchResult:
|
||||
html_url: str = '' # 平台上的运行详情页地址
|
||||
|
||||
|
||||
@dataclass
|
||||
class RunInfo:
|
||||
"""平台单次运行的状态快照。"""
|
||||
finished: bool = False # 是否已结束(拿到终态结论)
|
||||
status: str = '' # finished=True 时为 rdgen 内部终态码
|
||||
html_url: str = '' # 平台上的运行详情页地址
|
||||
|
||||
|
||||
# rdgen 目标平台 -> 工作流文件名(两平台同名)
|
||||
WORKFLOW_FILES = {
|
||||
'windows': 'generator-windows.yml',
|
||||
@@ -53,6 +61,11 @@ class BuildBackend:
|
||||
def log_url(self, run_id) -> str:
|
||||
raise NotImplementedError
|
||||
|
||||
def get_run(self, run_id, *, timeout=8):
|
||||
"""只读查询单次运行:已结束返回 RunInfo(finished=True, status=内部终态码);
|
||||
仍在途、查询失败或不支持时返回 None(调用方按「仍在进行」处理)。"""
|
||||
return None
|
||||
|
||||
# ---- 后台连接测试 ----
|
||||
def test_connection(self) -> dict:
|
||||
"""返回 {'ok': bool, 'message': 中文说明},不抛异常。"""
|
||||
|
||||
Reference in New Issue
Block a user