@PublicApi
public interface NonBlockingPlanExecutionService
PlanExecutionManager
that will run the change detection in the background.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)
|
@Nullable Future<ExecutionRequestResult> tryToStart(@NotNull Triggerable triggerable, @NotNull BuildDetectionAction buildDetectionAction)
PlanExecutionManager.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)triggerable
- buildDetectionAction
- void enqueueTrigger(@NotNull Triggerable triggerable, @NotNull Long triggerId, @NotNull BuildDetectionAction buildDetectionAction)
PlanExecutionManager.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 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 definedtriggerable
- buildDetectionAction
- @NotNull ExecutorStats getExecutorStats()
ThreadPoolExecutor
Copyright © 2021 Atlassian Software Systems Pty Ltd. All rights reserved.