public class NonBlockingPlanExecutionServiceImpl extends Object implements NonBlockingPlanExecutionService
| Constructor and Description |
|---|
NonBlockingPlanExecutionServiceImpl(PlanExecutionManager planExecutionManager) |
| Modifier and Type | Method and Description |
|---|---|
void |
enqueueTrigger(Triggerable triggerable,
Long triggerId,
BuildDetectionAction buildDetectionAction)
|
ExecutorStats |
getExecutorStats()
Stats for the underlying
ThreadPoolExecutor |
Future<Boolean> |
shutdown()
Stop accepting any more trigger requests.
|
Future<ExecutionRequestResult> |
tryToStart(Triggerable triggerable,
BuildDetectionAction buildDetectionAction)
|
public NonBlockingPlanExecutionServiceImpl(PlanExecutionManager planExecutionManager)
public void enqueueTrigger(@NotNull
Triggerable triggerable,
@NotNull
Long triggerId,
@NotNull
BuildDetectionAction buildDetectionAction)
NonBlockingPlanExecutionServicePlanExecutionManager.start(com.atlassian.bamboo.plan.cache.ImmutableChain, com.atlassian.bamboo.build.BuildDetectionAction, com.atlassian.bamboo.util.AcquisitionPolicy). Only one AcquisitionPolicy.IMMEDIATE
per planKey + triggerId combination will be queued at any point in time. The task are not guaranteed to be run, they might
get dropped if NonBlockingPlanExecutionService.tryToStart(Triggerable, BuildDetectionAction) is called.
Rationale is: conditional triggers won't start anyway if there's a 'guaranteed' build run.
To be used with automatic triggers: any auto Trigger can have Trigger Conditions definedenqueueTrigger in interface NonBlockingPlanExecutionService@Nullable public Future<ExecutionRequestResult> tryToStart(@NotNull Triggerable triggerable, @NotNull BuildDetectionAction buildDetectionAction)
NonBlockingPlanExecutionServicePlanExecutionManager.start(com.atlassian.bamboo.plan.cache.ImmutableChain, com.atlassian.bamboo.build.BuildDetectionAction, com.atlassian.bamboo.util.AcquisitionPolicy). The task uses AcquisitionPolicy.WAIT.
To be used for triggers that are 'unconditional'. In other words, the method should be used for cases where build absolutely, positively needs
to trigger (unless encountering internal error or hitting concurrent build limit)tryToStart in interface NonBlockingPlanExecutionServicepublic Future<Boolean> shutdown()
NonBlockingPlanExecutionServiceshutdown in interface NonBlockingPlanExecutionService@NotNull public ExecutorStats getExecutorStats()
NonBlockingPlanExecutionServiceThreadPoolExecutorgetExecutorStats in interface NonBlockingPlanExecutionServiceCopyright © 2019 Atlassian Software Systems Pty Ltd. All rights reserved.