You also might want to look at the Throttle Concurrent Builds Plugin [1] which also provides similar functionality, also implementing the QueueTaskDispatcher and JobProperty.
You might also want to ask Andrew Bayer, the maintainer of that plugin to see if it feasible to extend that plugin with the features you require. Chris https://wiki.jenkins-ci.org/display/JENKINS/Throttle+Concurrent+Builds+Plugin On Monday, August 13, 2012 12:14:36 PM UTC+1, ffromm wrote: > > Hi Thomas, > > have a look at > https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin. I used > the QueueTaskDispatcher as Extension Point for a similar problem. There you > just implement canRun or canTake method with your resource managed logic. > > Hope this helps, > > Cheers, Frederik > > 2012/8/13 ThomasBrouwer <[email protected] <javascript:>> > >> Hi there! >> >> I am currently planning on making a new plugin that extends the >> functionality of the Exclusion plugin ( >> https://wiki.jenkins-ci.org/display/JENKINS/Exclusion-Plugin). What the >> plugin will allow you to do is to specify multiple resources of the same >> type, so that a pool of resources is created. When a job then needs that >> resource, it will be given one of them and there will be one less resource >> in the pool. This means we can specify how many jobs requiring the same >> type of resource can run (by making that many resources). When a resource >> is allocated, its name should also be passed to the job so that we know >> which of the resources was given. Also, when a resource is not available >> the job should go back into the queue, rather than waiting and taking up an >> execution slot. >> This is useful when, for example, you have multiple devices set up in a >> lab that you want a job to connect to, but there are multiple boards a job >> can use, and some it can't (because it requires a specific type of board). >> Currently we need to specify which of the boards it always runs on, but >> that is not very flexible. Sometimes a job may require multiple resources >> as well. >> >> Now the question is: Does Jenkins allow you to change the way it >> schedules its jobs? That seems to be the most challenging part of this >> plugin, and I got the impression some things cannot be changed. Can this? >> >> Any help is greatly appreciated! >> Thomas Brouwer >> > >
