Skip to content

feat: 对齐任务逐次结果与调度语义(第三批) - #13

Merged
LING71671 merged 1 commit into
mainfrom
codex/align-python-run-results
Nov 11, 2026
Merged

LING71671 merged 1 commit into
mainfrom
codex/align-python-run-results

Conversation

@LING71671

Copy link
Copy Markdown
Collaborator

关联 #10,完成与 surveycore-py 对齐的第三批:批量任务的逐次结果与调度语义。

行为变化

  • Go SDK 新增 Client.RunResults 和包级 RunResults,按完成顺序迭代 SubmissionResult,尝试编号从 1 开始。单次失败保留结果并继续后续尝试;准备失败或调用方取消通过迭代错误返回。提前退出迭代会取消未完成请求并等待工作线程结束。
  • 新增 GET /api/v1/tasks/{id}/results?after=0&limit=200,沿用 SQLite 任务事件日志保存逐次结果,无需数据库迁移,重启后仍可分页读取。完成事件通过 Event.Result 提供同一结果。
  • 默认运行按目标尝试次数执行、限制并发,不再因信效度开关自动重试。除第一次外,每次尝试开始前均在并发槽内等待配置范围的随机间隔。原生 Go 配置显式启用的 failStop 继续生效。
  • 异步任务独立于创建请求;停止接口取消运行中的请求。取消中的请求不计为失败。停止记录同步保存,避免覆盖最终汇总;调用方取消优先返回上下文错误。
  • 保留 Run / RunWithEvents 的汇总返回形式,存在单次失败时在结束后返回首个错误。同步更新 README、SDK 文档、示例和 OpenAPI。

验证

  • go test ./...
  • go test -race ./...
  • go vet ./...
  • go build ./...
  • 外部 Go 模块调用验证:GOWORK=off go test ./...(tests/consumer)
  • 校验全部 47 个 OpenAPI 组件、内部引用、Python 结果夹具、结果分页示例与完成事件
  • 新增回归覆盖:完成顺序与并发上限、失败后继续且不重试、新工作线程的提交间隔、等待和提交期间取消、提前退出迭代后回收工作线程、HTTP 请求结束后的后台运行、分页游标、任务隔离、结果持久化与停止记录。

下一批继续对齐解析元数据与平台差异。

@LING71671
LING71671 merged commit 746d111 into main Nov 11, 2026
10 checks passed
@LING71671
LING71671 deleted the codex/align-python-run-results branch November 11, 2026 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant