Package com.atlassian.bamboo.plan
Interface PlanExecutionLockService
-
- All Known Implementing Classes:
PlanExecutionLockServiceImpl
@Internal public interface PlanExecutionLockService
Locking manager forPlanExecutionManager
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <V> V
inlineProcessLocks(@NotNull TriggerableInternalKey lockKey, @NotNull AcquisitionPolicy acquisitionPolicy, @NotNull Callable<V> callable)
A parallel locking mechanism that allows a backdoor to the standard lock.void
interruptLockOwner(@NotNull TriggerableInternalKey lockKey)
Interrupts the owner of the lock represented byTriggerableInternalKey
boolean
isLocked(@NotNull TriggerableInternalKey lockKey)
Checks if the givenString
has been locked<V> V
lock(@NotNull TriggerableInternalKey lockKey, @NotNull AcquisitionPolicy acquisitionPolicy, @NotNull Callable<V> callable)
Acquires a lock on the givenTriggerableInternalKey
then calls the givenCallable
within the global request lock<V> V
runWhenNoExecutionRequestsAreBeingMade(@NotNull Callable<V> callable)
Executes the givenCallable
when there are no requests being made to execute plans
-
-
-
Method Detail
-
runWhenNoExecutionRequestsAreBeingMade
<V> V runWhenNoExecutionRequestsAreBeingMade(@NotNull @NotNull Callable<V> callable) throws Exception
Executes the givenCallable
when there are no requests being made to execute plans- Type Parameters:
V
- callable result type- Parameters:
callable
- to execute- Returns:
- callable result
- Throws:
Exception
- if error
-
isLocked
boolean isLocked(@NotNull @NotNull TriggerableInternalKey lockKey)
Checks if the givenString
has been locked- Parameters:
lockKey
- to check- Returns:
- locked state
-
lock
<V> V lock(@NotNull @NotNull TriggerableInternalKey lockKey, @NotNull @NotNull AcquisitionPolicy acquisitionPolicy, @NotNull @NotNull Callable<V> callable) throws Exception
Acquires a lock on the givenTriggerableInternalKey
then calls the givenCallable
within the global request lock- Type Parameters:
V
- callable result type- Parameters:
lockKey
- to lockacquisitionPolicy
- to acquire the lockcallable
- to execute- Returns:
- callable result
- Throws:
Exception
- if error
-
inlineProcessLocks
<V> V inlineProcessLocks(@NotNull @NotNull TriggerableInternalKey lockKey, @NotNull @NotNull AcquisitionPolicy acquisitionPolicy, @NotNull @NotNull Callable<V> callable) throws Exception
A parallel locking mechanism that allows a backdoor to the standard lock. This should only be used for short lived locking (whereas the standard lock might be used for change detection). This is by convention only, so take care. This lock will participate inisLocked(TriggerableInternalKey)
andinterruptLockOwner(TriggerableInternalKey)
- Type Parameters:
V
-- Parameters:
lockKey
-acquisitionPolicy
-callable
-- Returns:
- Throws:
Exception
-
interruptLockOwner
void interruptLockOwner(@NotNull @NotNull TriggerableInternalKey lockKey)
Interrupts the owner of the lock represented byTriggerableInternalKey
- Parameters:
lockKey
-- Since:
- 3.3.3
-
-