Example #1
0
 /// <summary>
 /// Creates a new instance of the DistributedLock class.
 /// </summary>
 /// <param name="store">The object store where the object exists.</param>
 /// <param name="staleLockMultiplier">A multiplier used to determine if a previously locked object is stale. Setting this value too short will result in one lock overwriting another.</param>
 public DistributedLock(ISharpLockDataStore <TLockableObject, TId> store, int staleLockMultiplier = 10)
 {
     _store               = store ?? throw new ArgumentNullException(nameof(store));
     _sharpLockLogger     = _store.GetLogger();
     LockTime             = _store.GetLockTime();
     _staleLockMultiplier = staleLockMultiplier;
 }
Example #2
0
        public async Task Setup()
        {
            var logConfig = new LoggerConfiguration()
                            .WriteTo.LiterateConsole()
                            .MinimumLevel.Verbose();

            Log.Logger       = logConfig.CreateLogger();
            _sharpLockLogger = new LoggingShim(Log.Logger);

            var client = new MongoClient();
            var db     = client.GetDatabase("Test");

            _col = db.GetCollection <LockBase>($"lockables.{GetType()}");
            await _col.DeleteManyAsync(Builders <LockBase> .Filter.Empty);
        }
Example #3
0
 public SharpLockMongoDataStore(IMongoCollection <TLockableObject> col, ISharpLockLogger sharpLockLogger, TimeSpan lockTime)
 {
     _baseDataStore = new SharpLockMongoDataStore <TLockableObject, TLockableObject>(col, sharpLockLogger, lockTime);
 }
 public SharpLockMongoDataStore(IMongoCollection <TBaseObject> col, ISharpLockLogger sharpLockLogger, TimeSpan lockTime)
 {
     _sharpLockLogger = sharpLockLogger ?? throw new ArgumentNullException(nameof(sharpLockLogger));
     _col             = col ?? throw new ArgumentNullException(nameof(col));
     _lockTime        = lockTime == default(TimeSpan) ? throw new ArgumentNullException(nameof(lockTime)) : lockTime;
 }