@PublicApi
public interface NonBlockingPlanExecutionService
PlanExecutionManager
that will run the change detection in the background.Modifier and Type | Method and Description |
---|---|
void |
enqueueTrigger(@NotNull Triggerable triggerable,
@NotNull Long triggerId,
@NotNull BuildDetectionAction buildDetectionAction)
|
@NotNull ExecutorStats |
getExecutorStats()
Stats for the underlying
ThreadPoolExecutor |
@NotNull QueueActivityStatsDto |
getQueueActivityStatsAndRestoreToInitialState()
Gets analytical data from queue activity tracker and bring its initial state - start data collecting from scratch.
|
Future<Boolean> |
shutdown()
Stop accepting any more trigger requests.
|
@Nullable Future<ExecutionRequestResult> |
tryToStart(@NotNull Triggerable triggerable,
@NotNull BuildDetectionAction buildDetectionAction)
|
@Nullable @Nullable Future<ExecutionRequestResult> tryToStart(@NotNull @NotNull Triggerable triggerable, @NotNull @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 @NotNull Triggerable triggerable, @NotNull @NotNull Long triggerId, @NotNull @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 @NotNull ExecutorStats getExecutorStats()
ThreadPoolExecutor
@Internal @NotNull @NotNull QueueActivityStatsDto getQueueActivityStatsAndRestoreToInitialState()
Copyright © 2022 Atlassian Software Systems Pty Ltd. All rights reserved.