DebounceLock
class DebounceLock (View source)
Traits
Properties
| protected Repository | $cache | The cache repository implementation. |
Methods
Get a configuration value from an attribute, falling back to a property.
Extract the value from an attribute instance.
Get an instance of the given attribute class from the target class or its parents.
Store a debounce owner token for the given job.
Determine if the maximum debounce wait time has been exceeded.
Determine if the given owner is the current owner for this debounce key.
Determine if a debounce token exists for the given job.
Remove the debounce token for the given job.
Get the debounce delay for the given job.
Get the maximum debounce wait time for the given job.
Generate the cache key for the given job.
Resolve the cache store for the given job.
Details
protected mixed
getAttributeValue(object $target, string $attributeClass, string|null $property = null, mixed $default = null)
Get a configuration value from an attribute, falling back to a property.
protected mixed
extractAttributeValue(object $instance)
Extract the value from an attribute instance.
protected object|null
getAttributeInstance(object $target, string $attributeClass)
Get an instance of the given attribute class from the target class or its parents.
__construct(Repository $cache)
Create a new debounce lock manager instance.
acquire(mixed $job, int|null $debounceFor = null, int|null $maxWait = null)
Store a debounce owner token for the given job.
Overwrites any existing token, implementing last-writer-wins semantics.
protected bool
maxWaitExceeded(Repository $cache, string $key, int $ttl, int|null $maxWait)
Determine if the maximum debounce wait time has been exceeded.
bool
isCurrentOwner(mixed $job, string $owner)
Determine if the given owner is the current owner for this debounce key.
bool
lockExists(mixed $job)
Determine if a debounce token exists for the given job.
void
release(mixed $job, string $owner = '')
Remove the debounce token for the given job.
int|null
getDebounceDelay(mixed $job)
Get the debounce delay for the given job.
int|null
getMaxDebounceWait(mixed $job)
Get the maximum debounce wait time for the given job.
static string
getKey(mixed $job)
Generate the cache key for the given job.
protected Repository
resolveCache(mixed $job)
Resolve the cache store for the given job.