示例#1
0
        public KVSLockWithCAS(string lockKey,
                              DateTime expires,
                              IStoreProvider provider,
                              IRetryStrategy retryStrategy = null,
                              string workerId            = null,
                              ITextSerializer serializer = null)
        {
            _retryStrategy = retryStrategy ?? new NoRetryStrategy();

            LockKey    = lockKey;
            Expires    = expires;
            WorkerId   = workerId ?? System.Environment.MachineName;
            Provider   = provider;
            Serializer = serializer ?? new JavaScriptTextSerializer();

            _retryStrategy.ExecuteDelegateWithRetry(AcquireLock);
        }
示例#2
0
        public KVSLockWithoutCAS(string lockKey,
                                 DateTime expires,
                                 IStoreProvider provider,
                                 IRetryStrategy retryStrategy = null,
                                 string workerId = null,
                                 int retryingLockBackoffTimeMs = 100,
                                 ITextSerializer serializer    = null)
        {
            _retryStrategy = retryStrategy ?? new NoRetryStrategy();
            LockKey        = lockKey;
            Expires        = expires;
            WorkerId       = workerId;
            Provider       = provider;
            Serializer     = serializer;

            _retryStrategy.ExecuteDelegateWithRetry(AcquireLock);
        }
示例#3
0
 public void Set <T>(Key key, T value)
 {
     _retryStrategy.ExecuteDelegateWithRetry(
         () => StoreProvider.Set(key, Serializer.Serialize(value)));
 }