Lynn 在 2012-6-28 下午6:41,"Jan Seidel" <wakkal...@gmail.com>写道:
> Hi folks, > > I am trying to parallelize some of our builds to speed things up. > This particular build is quite special as it also interacts with > databases. Multiple write access on a database will wreck the content, so > this must be avoided by all means. It takes us in worst cast out of > business for 2 weeks and creates loads of work and stress. > > Don't ask me why the DB design is as it is, that's pretty complicated, > insane, sooo wrong and not worth discussing in order to fix that issue and > let the build jobs just do what they are meant to do. > Have been there, didn't like it, went away! > > The initial build job is a dispatcher that decides which job to run. So > far quite easy but it also checks for 2 conditions which requires to almost > identical jobs asides of one of the repositories location. > *So the jobs access mostly the same ressources including the database > which must not be simultaneously!* So they are a kind of "*siblings*" > The default is set that inhibits to spawn duplicate jobs but with this > second condition is it changing a bit. The second condition requires to > block a job if a duplicate or the sibling is running > > This brings me to a dumb situation. Either I find a way to: > > - refer to related AND non-related jobs which may block a build > - block on top-level (the dispatcher). This works but scraps all my > efforts to get jobs not sharing same ressources to run in parallel > - do not block jobs and hope that the developers don't botch it and > wreck a database *yuk* > > Do you know a solution to block a job if a clone or a sibling already is > running? > > > > Cheers > > Jan >