public class BuildQueueManagerImpl extends Object implements BuildQueueManager
BuildQueueManager.QueuedResultKey, BuildQueueManager.QueueItemView<T>
DISABLE_BUILD_SYSTEM_PROPERTY
Constructor and Description |
---|
BuildQueueManagerImpl(AgentManager agentManager,
com.atlassian.event.api.EventPublisher eventPublisher,
BuildExecutionManager buildExecutionManager,
com.atlassian.plugin.PluginAccessor pluginAccessor,
ErrorUpdateHandler errorUpdateHandler,
ExecutableAgentsHelper executableAgentsHelper,
CustomVariableContextRunner customVariableContextRunner,
ExecutionPhaseService executionPhaseService,
XStreamFactory xStreamFactory,
org.springframework.transaction.support.TransactionTemplate transactionTemplate,
LocalResultProcessor resultProcessor) |
Modifier and Type | Method and Description |
---|---|
void |
addToQueue(CommonContext context)
Attempts to add the build to a queue.
|
Set<Long> |
getExecutorsForQueuedExecutable(ResultKey resultKey) |
Collection<ElasticImageConfiguration> |
getImagesForQueuedExecutable(ResultKey resultKey) |
Iterable<BuildQueueManager.QueuedResultKey> |
getQueuedExecutables() |
BuildQueuePosition |
getQueuePosition(ResultKey resultKey)
Returns information on position of plan result in the queue.
|
void |
invalidateExecutables(BuildAgent buildAgent)
Updates all agent-executable mappings for a given agent.
|
void |
invalidateExecutors(Key key) |
void |
invalidateExecutors(String reason) |
BuildQueueManager.QueueItemView<CommonContext> |
peekContext(ResultKey resultKey)
Returns a queued CommonContext for given resultKey.
|
void |
removeBuildFromQueue(ResultKey resultKey)
Removes the
CommonContext associated with the resultKey to be removed from the queue. |
boolean |
reorderInQueue(ResultKey resultKey,
int index)
Reorders the build queue.
|
void |
restoreState(Set<ResultKey> resultsToRestore)
Restore state after server restart.
|
CommonContext |
takeBuildContext(long agentId)
Takes a
BuildContext from the queue, blocking until one is available. |
@Inject public BuildQueueManagerImpl(@NotNull AgentManager agentManager, @NotNull com.atlassian.event.api.EventPublisher eventPublisher, @NotNull BuildExecutionManager buildExecutionManager, @NotNull com.atlassian.plugin.PluginAccessor pluginAccessor, @NotNull ErrorUpdateHandler errorUpdateHandler, @NotNull ExecutableAgentsHelper executableAgentsHelper, @NotNull CustomVariableContextRunner customVariableContextRunner, @NotNull ExecutionPhaseService executionPhaseService, @NotNull XStreamFactory xStreamFactory, @NotNull org.springframework.transaction.support.TransactionTemplate transactionTemplate, @NotNull LocalResultProcessor resultProcessor)
public void addToQueue(@NotNull CommonContext context)
BuildQueueManager
A lock on the build is obtained from the BuildExecutionManager
.
addToQueue
in interface BuildQueueManager
public void removeBuildFromQueue(@NotNull ResultKey resultKey)
BuildQueueManager
CommonContext
associated with the resultKey to be removed from the queue.
The lock on the build is not released. The caller should call com.atlassian.bamboo.build.BuildExecutionManager#finishBuild(PlanResultKey)
to
release this lock when ready.
removeBuildFromQueue
in interface BuildQueueManager
public boolean reorderInQueue(ResultKey resultKey, int index)
BuildQueueManager
CommonContext
associated with the resultKey is moved to new position in the queue
indicated by the zero-based index parameter. If index is < 0 or >= size of queue then CommonContext
is
positioned at the beginning or at the end of the queue respectively.reorderInQueue
in interface BuildQueueManager
resultKey
- Result key of the build that shall be repositioned in the queue.index
- New position of a CommonContext
associated with the planKey in the queue.@NotNull public BuildQueuePosition getQueuePosition(@NotNull ResultKey resultKey)
BuildQueueManager
getQueuePosition
in interface BuildQueueManager
resultKey
- identifies plan resultpublic void invalidateExecutors(@NotNull String reason)
invalidateExecutors
in interface BuildQueueManager
public void invalidateExecutors(@NotNull Key key)
invalidateExecutors
in interface BuildQueueManager
public void invalidateExecutables(@NotNull BuildAgent buildAgent)
BuildQueueManager
invalidateExecutables
in interface BuildQueueManager
@NotNull public Iterable<BuildQueueManager.QueuedResultKey> getQueuedExecutables()
getQueuedExecutables
in interface BuildQueueManager
@Nullable public Collection<ElasticImageConfiguration> getImagesForQueuedExecutable(@NotNull ResultKey resultKey)
getImagesForQueuedExecutable
in interface BuildQueueManager
@Nullable public Set<Long> getExecutorsForQueuedExecutable(@NotNull ResultKey resultKey)
getExecutorsForQueuedExecutable
in interface BuildQueueManager
@Nullable public BuildQueueManager.QueueItemView<CommonContext> peekContext(@NotNull ResultKey resultKey)
BuildQueueManager
peekContext
in interface BuildQueueManager
public void restoreState(Set<ResultKey> resultsToRestore)
BuildQueueManager
restoreState
in interface BuildQueueManager
resultsToRestore
- keys of results that it makes sense to restore@Nullable public CommonContext takeBuildContext(long agentId) throws InterruptedException
AgentQueueAccessor
BuildContext
from the queue, blocking until one is available.
The lock on the build is not released. The caller should call com.atlassian.bamboo.build.BuildExecutionManager#finishBuild(PlanResultKey)
to
release this lock when ready.
takeBuildContext
in interface AgentQueueAccessor
agentId
- the id of the agent that is taking the build context.BuildContext
, null in case of timeout on retrieval.InterruptedException
- if the calling Thread
is interrupted.Copyright © 2020 Atlassian Software Systems Pty Ltd. All rights reserved.