Why do parallel job steps still poll for an available server?
I have a project that has several parallel job steps. Only two can run at a time. This has been set by the maximum number of jobs that can run on the server. All jobs run on the same server. So, while two of the jobs are running, the rest of them are apparently polling to see when the server becomes available. Why? The Management Console machine should already know that the maximum number of job steps are running. It should also know that when one of these jobs finishes, then the server will become available again.
Also, while these job steps are polling, their run clock is ticking. It shows all of the accumulated wait time and makes it look like the job took an inordinately long time to run, whereas it was mostly just waiting to get started. Build Forge 8.0.0.1. Thanks, John Bobinyec |
Accepted answer
Hello,
The start time of a threaded step depends on the availability of the server. If the step cannot be started, the system waits and tries again. You can't control which step starts first. This is because the design is for the console to say, oh threaded step, let's run the next one. There has to be another one right? Kicks off the next step. Thread enabled, let's kick off another step. Oh wait, server limit has been reached. Let's just sit and wait.
Let say for example you had 40 threaded steps. Now, these steps could be running on 40 different servers or 10. It's easier for the console to have a step reach out to it's desired server than it is to pool the potentially endless amounts of threaded steps on however many servers, log that and use that dynamically changing data to run a query against something so that the job can then kick off. Plus, I could see a race condition causing issues here too.
If they run on the same server with max jobs 2. I would set the max threaded steps to 2 instead of the server max jobs. Just an option.
I hope this helps and doesn't confuse you more.
Thanks!
John Bobinyec selected this answer as the correct answer
Comments
John Bobinyec
commented May 08 '14, 7:36 p.m.
Thanks. The max threaded steps sounds like what I need. How do I do that? The project has a property called Max Threads. It's set to Unlimited and I can't change it. When the mouse hovers over it, it turns into a circle with a slash through it.
|
2 other answers
aaahhh Yeah that is a defect at the moment. I thought it was fixed in 8.0.0.1 but I guess not. Not to worry, it will be fixed in the next release I imagine. Don't quote me but you are not the only one running into this issue.
Thanks for using the forums and participating.
Comments
John Bobinyec
commented May 09 '14, 8:41 a.m.
I just checked the bug reports. The Max Threads property no longer works because it is deprecated in the MJC. The solution seems to be that it will no longer be displayed on the panel.
|
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.