com.atlassian.bamboo.build.monitoring
Class OrphanedBuildMonitorJob
java.lang.Object
com.atlassian.bamboo.build.monitoring.OrphanedBuildMonitorJob
- All Implemented Interfaces:
- org.quartz.Job, org.quartz.StatefulJob
public class OrphanedBuildMonitorJob
- extends Object
- implements org.quartz.StatefulJob
This class looks for orphaned builds - i.e. builds that claim to be in a certain state, but from server status
it's clear that they will never be able to make transition out of that state.
Currently, the following situations are detected:
- Build claims to be queued, but it's not in the queue for an extended period of time.
- Build claims to be active, but there is no agent that's actually building it
In case we find a problematic build we cannot just remove it:
1. maybe an agent is already working on it, but just did not report in yet (agentId == null, but everything OK)
2. maybe the agent is not responsive (agentId != null, agent may or may not come back).
3. maybe 1. happened and will be followed by 2.
etc.etc.
In case of 1., we should give the agent some time to report in.
In case of 2. or 3., we should let the AgentManager remove the agent and the build, it will do so in heartbeatTimeoutSeconds+heartbeat seconds
So, waiting heartbeatTimeoutSeconds + 2xheartbeat before taking action seems like a good idea
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MAP_KEY_REACTION_DELAY
public static final String MAP_KEY_REACTION_DELAY
- See Also:
- Constant Field Values
OrphanedBuildMonitorJob
public OrphanedBuildMonitorJob()
execute
public void execute(org.quartz.JobExecutionContext jobExecutionContext)
throws org.quartz.JobExecutionException
- Specified by:
execute
in interface org.quartz.Job
- Throws:
org.quartz.JobExecutionException
setBuildExecutionManager
public void setBuildExecutionManager(BuildExecutionManager buildExecutionManager)
setBuildLoggerManager
public void setBuildLoggerManager(BuildLoggerManager buildLoggerManager)
setBuildQueueManager
public void setBuildQueueManager(BuildQueueManager buildQueueManager)
setResultsSummaryManager
public void setResultsSummaryManager(ResultsSummaryManager resultsSummaryManager)
setErrorUpdateHandler
public void setErrorUpdateHandler(ErrorUpdateHandler errorUpdateHandler)
setDeploymentsInProgressService
public void setDeploymentsInProgressService(DeploymentsInProgressService deploymentsInProgressService)
setDeploymentResultService
public void setDeploymentResultService(DeploymentResultService deploymentResultService)
setDeploymentExecutionService
public void setDeploymentExecutionService(DeploymentExecutionService deploymentExecutionService)
Copyright © 2015 Atlassian Software Systems Pty Ltd. All rights reserved.