class RetryTillSaveStore implements StoreInterface, LoggerAwareInterface

RetryTillSaveStore is a StoreInterface implementation which decorate a non blocking StoreInterface to provide a blocking storage.

Traits

LoggerAwareTrait

Methods

__construct(StoreInterface $decorated, int $retrySleep = 100, int $retryCount = PHP_INT_MAX)

No description

save(Key $key)

Stores the resource if it's not locked by someone else.

waitAndSave(Key $key)

Waits until a key becomes free, then stores the resource.

putOffExpiration(Key $key, $ttl)

Extends the ttl of a resource.

delete(Key $key)

Removes a resource from the storage.

bool
exists(Key $key)

Returns whether or not the resource exists in the storage.

Details

__construct(StoreInterface $decorated, int $retrySleep = 100, int $retryCount = PHP_INT_MAX)

Parameters

StoreInterface $decorated The decorated StoreInterface
int $retrySleep Duration in ms between 2 retry
int $retryCount Maximum amount of retry

save(Key $key)

Stores the resource if it's not locked by someone else.

waitAndSave(Key $key)

Waits until a key becomes free, then stores the resource.

If the store does not support this feature it should throw a NotSupportedException.

putOffExpiration(Key $key, $ttl)

Extends the ttl of a resource.

If the store does not support this feature it should throw a NotSupportedException.

Parameters

Key $key
$ttl

Exceptions

LockConflictedException
NotSupportedException

delete(Key $key)

Removes a resource from the storage.

Parameters

Key $key

Exceptions

LockReleasingException

bool exists(Key $key)

Returns whether or not the resource exists in the storage.

Parameters

Key $key

Return Value

bool