实现 Gitea assignment 调度循环
This commit is contained in:
@@ -30,6 +30,8 @@ controller 使用单一 Go 二进制;默认在同一进程启用 `scheduler`
|
||||
|
||||
- 对 workflow 的接口保持 `[self-hosted, pod]` 和 `[self-hosted, vm]` 不变。
|
||||
- scheduler 在没有对应 backend 容量时不领取 task,避免本地形成不可控积压。
|
||||
- scheduler Declare 后使用 RunnerService 长轮询;一旦 FetchTask 返回已分配 task,在
|
||||
JetStream publish 成功前只重试该 assignment,不领取下一项。
|
||||
- 每个 executor 只执行一个 task,完成后销毁。
|
||||
- SPIFFE 身份从实际领取的 task 的 repository 和 workflow job key 派生,不需要 queued 与
|
||||
in-progress webhook 的二阶段关联。
|
||||
@@ -63,7 +65,8 @@ controller 使用单一 Go 二进制;默认在同一进程启用 `scheduler`
|
||||
1. 固定当前 Gitea 版本所使用的 RunnerService protobuf 与 act_runner 版本,记录兼容
|
||||
范围并建立协议契约测试。
|
||||
2. 实现只注册、Declare labels 和容量感知 FetchTask 的 scheduler spike,暂不执行
|
||||
task。
|
||||
task。首次集成必须验证 FetchTask 后、JetStream publish 前进程崩溃时 Gitea 对同一
|
||||
runner 的 task 恢复语义;该窗口未验证前不能声称 scheduler 可无损恢复。
|
||||
3. 从 act_runner 提取或复用 task 执行与日志上报能力,定义 scheduler 到 executor 的
|
||||
单任务协议。
|
||||
4. 首先接入 Pod executor,验证成功、失败、取消、超时和 scheduler 重启。
|
||||
|
||||
Reference in New Issue
Block a user