RetryTillSaveStore
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) | ||
save(Key $key) Stores the resource if it's not locked by someone else. | ||
waitAndSave(Key $key) Waits a key becomes free, then stores the resource. | ||
putOffExpiration(Key $key, float $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.
Parameters
Key | $key | key to lock |
Exceptions
LockConflictedException |
waitAndSave(Key $key)
Waits a key becomes free, then stores the resource.
If the store does not support this feature it should throw a NotSupportedException.
Parameters
Key | $key | key to lock |
Exceptions
LockConflictedException | |
NotSupportedException |
putOffExpiration(Key $key, float $ttl)
Extends the ttl of a resource.
If the store does not support this feature it should throw a NotSupportedException.
Parameters
Key | $key | key to lock |
float | $ttl | amount of second to keep the lock in the store |
Exceptions
LockConflictedException | |
NotSupportedException |
delete(Key $key)
Removes a resource from the storage.
Parameters
Key | $key | key to remove |
bool exists(Key $key)
Returns whether or not the resource exists in the storage.
Parameters
Key | $key | key to remove |
Return Value
bool |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/4.0/Symfony/Component/Lock/Store/RetryTillSaveStore.html