Gitlab : List all the projects and all the groups
分别调用projects
接口和groups
接口即可,类似——
curl --head "https://<host/api/v4/projects?private_token=<your private token>&per_page=100&page=<page_number>"
只返回head部分,其中包括X-Total
和X-Total-Pages
的值。默认page从1开始计算,默认每页返回20条,最大返回100个条目
官方推荐的gitlab api客户端实现
任务:将所有的项目平均分配给四个相同的服务实例分别处理。任务异步处理,时效要求不高,要所有的项目都完成后再统一发送结果
- API调用无法实现(对外提供服务是统一的出口,处理只会分配给任意的其中一台)
- 只能通过主动分别请求“任务分发”服务。使用数据库做中介
- “结果需要统一发送”
- 服务实例有可能被kill,分配给自己的任务部分还没全部完成
API提供接口进行任务初始化:
- 查询总量,分配任务
- 实例启动时,上报状态,
- 执行器空闲状态下轮询任务表
- 如果有任务:如果有自己:开始执行;如果没有,查询每个机器是否存活,然后更新任务表,自己接力已经被killed的机器任务
- 执行完一个任务后,更新自己所属的任务完成的数目
id | ip | startPage | total | finish | status |
---|---|---|---|---|---|
15 | 10.19.3.130 | 25 | 2560 | 1005 | 1 |
网友评论