【发布时间】:2021-02-15 03:07:22
【问题描述】:
我注意到,构建在工作人员之间的分配是次优的,80% 的时间构建在繁忙的工作人员上运行。
如果你看一下图片,tmp_worker1 可以处理triggered_build_1,但是,它是空闲的!由于某种原因,triggered_build_1 处于锁定状态并被分配给忙碌的example-worker
我有下一个设置:
- 3 名工人
- 1 个主要建设者
- 3 个可触发的构建器(带锁)
下面的主要源代码
# triggerable scheduler
c['schedulers'].append(schedulers.Triggerable(name="trigger_from_main",
builderNames=['triggered_build_0', 'triggered_build_1', 'triggered_build_2']))
# main builder factory
factory_main = util.BuildFactory()
# trigger
factory_main.addStep(steps.Trigger(
schedulerNames=['trigger_from_main'],
waitForFinish=True,
haltOnFailure=True,
name='trigger'
))
# main builder
c['builders'].append(
util.BuilderConfig(name="test_main",
workernames=['example-worker', 'tmp_worker0', 'tmp_worker1'],
factory=factory_main,
)
)
# lock
worker_lock = [util.WorkerLock("worker_builds", maxCount=1).access('counting')]
# 1st of 3 sub-builder
c['builders'].append(
util.BuilderConfig(name="triggered_build_0",
workernames=['example-worker', 'tmp_worker0', 'tmp_worker1'],
factory=factory_subbuild,
locks=worker_lock,
)
)
# 2nd of 3 sub-builder
...
# 3rd of 3 sub-builder
...
【问题讨论】:
-
我认为您需要提供更多代码,这样我们就可以创建一个工作副本并尝试解决您的问题
标签: python python-3.x triggers buildbot