[Buildbot-devel] scheduler questions

Brian Warner warner-buildbot at lothar.com
Sat Mar 11 02:59:40 UTC 2006


> Reading the manual I stumble upon the 'Nightly' scheduler, and find the
> following note:
> 
> 
> "note that this Scheduler only lets you control the time between builds,
> not the absolute time-of-day of each Build..."

That part of the manual needs to be clarified.. the Nightly scheduler class
will indeed do the crontab-style scheduling that you want to do.

The section you quoted is referring to the Periodic scheduler class, which
only controls the time between successive builds. Unfortunately, the example
it is referring to is using an instance of the Periodic class stored in a
variable named 'nightly'. That section has not yet been updated to
demonstrate an instance of the Nightly class too.

The following page in the manual describes the Nightly scheduler and what it
can do.

> On a related note, is there anything I can do to control the level of
> concurrency, i.e. the number of processes run in parallel on a given
> machine (e.g. slave) ? It would be good to be able to constrain the number
> of builds executed in parallel on a particular machine, to avoid excessive
> high loads.

We have slave-wide Locks, which can keep the number of processes down to one
per slave. With a little bit of work, these could probably be enhanced to
behave more like multiple-holder semaphores, so you could have two or three
Steps or Builds running at the same time on any given slave.

The manual has a section on Locks with some examples.. take a look at ones
that use the SlaveLock class.

You could also conceivably create a Scheduler that was somehow aware of the
load on the slave machines, and avoided triggering a build that would be run
on a very busy slave. This would somewhat violate the current separation
between Scheduler, Builder, and buildslave, however.


cheers,
 -Brian




More information about the devel mailing list