buildbot使用什么算法将构建器分配给从机?
我有一个构建机器人,里面有一些构建器和两台从机。
有些构建器只能在一台从机上运行,而有些则可以在两台机器上运行。
那么,这个构建机器人会用什么算法来安排构建呢?它会注意到有些构建器只能在一台从机上运行,并且应该把那些可以在两台从机上运行的任务分配给需求较少的那台吗?
(我知道构建机器人可以用来在多个平台上运行相同的构建,比如Windows、Linux等。我们使用它来分配构建任务以提高性能,因为对我们来说,单个构建就足够了)。
1 个回答
11
首先,它会获取所有连接到这个构建器的从属机器(也就是“奴隶”)的列表。然后,它会随机挑选一台。如果这台从属机器正在运行的构建数量超过了 slave.max_builds
,它就会再挑选另一台。
你可以重写 nextSlave
方法来改变选择从属机器的方式。传递给你这个函数的参数会是 Builder
对象,以及一个 buildbot.buildslave.BuildSlave
对象的列表。你需要从这个列表中返回一个项目,或者返回 None
。