You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab Runner配置:如何让每个Runner仅执行单个任务,其余任务排队

问题分析与解决方案

核心问题根源

你用同一个config.toml同时管理3台Mac的GitLab Runner是错误的。GitLab Runner是单机器运行的进程,一个config.toml对应一台机器上的Runner实例。你当前的操作是在其中一台Mac上启动了3个Runner进程,另外两台Mac根本没有运行Runner服务,所有任务都会被分配到这一台机器的3个Runner,导致资源冲突,出现同一Runner跑多任务、其他机器Runner空闲的异常。

正确配置方案

1. 拆分配置文件

每台Mac单独维护自己的config.toml,每个文件仅包含一个[[runners]]区块,不要把多台机器的Runner配置混在一起。

2. 修正参数配置

注意:concurrent是全局参数(不属于单个[[runners]]),控制当前机器上Runner进程能同时执行的任务总数;limit是单个Runner的参数,控制该Runner最多承接的任务数。

单台Mac的正确config.toml示例:

# 全局配置:当前机器上所有Runner实例的并发执行上限
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "Mac Runner 1"
  url = "https://your-gitlab-instance.com/"
  token = "该Runner专属的令牌"
  executor = "shell"
  # 限制该Runner最多承接1个任务
  limit = 1
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]

另外两台Mac的配置文件以此类推,替换name和对应的token即可。

3. 单独启动Runner服务

每台Mac上分别启动GitLab Runner服务,确保3个Runner在GitLab后台都显示为在线状态。

验证效果

启动6个任务时,3台Mac的Runner会各执行1个任务,剩余3个任务进入队列,待任意Runner空闲后自动承接执行,符合你的预期。

内容的提问来源于stack exchange,提问作者Алексей Ванюшин

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:30:27