Пример #1
0
        public MongoDbService(
            IUnitIdProvider dhuIdProvider,
            string connString,
            string databaseName,
            TimeSpan leaseCheckTimeout,
            TimeSpan leaseLostTimeout,
            TimeSpan updateServerTimeInterval)
        {
            var client = new MongoClient(connString);

            this.database          = client.GetDatabase(databaseName);
            this.leaseCollection   = database.GetCollection <Lease>(TransportConstants.LeaseLockTable);
            this.leaseCheckTimeout = leaseCheckTimeout;
            this.leaseLostTimeout  = leaseLostTimeout;
            this.timeService       = new MongoDatabaseTimeService(connString, databaseName, updateServerTimeInterval);
            this.lockService       = new MongoDbLeaseLockService(dhuIdProvider, this.timeService, connString, databaseName, leaseCheckTimeout, leaseLostTimeout);
        }
Пример #2
0
        public MongoDbLeaseLockService(IUnitIdProvider dhuIdProvider, ITimeService timeService, string connString, string databaseName, TimeSpan leaseCheckTimeout, TimeSpan leaseLostTimeout)
        {
            if ((2 * leaseCheckTimeout.TotalMilliseconds) > leaseLostTimeout.TotalMilliseconds)
            {
                //throw new ArgumentException("lease Check Timeout must be less than lease Lost Timeout", "leaseCheckTimeout");
            }

            var client = new MongoClient(connString);

            this.database          = client.GetDatabase(databaseName);
            this.leaseCollection   = database.GetCollection <Lease>(TransportConstants.LeaseLockTable);
            this.leaseCheckTimeout = leaseCheckTimeout;
            this.leaseLostTimeout  = leaseLostTimeout;
            this.timeService       = timeService;
            this.dhuIdProvider     = dhuIdProvider;
            this.disposeCts        = new CancellationTokenSource();
        }
Пример #3
0
        public MongoDbLeaseLockService(IUnitIdProvider dhuIdProvider, string connString, string databaseName, TimeSpan leaseCheckTimeout, TimeSpan leaseLostTimeout, TimeSpan updateTimeInterval)
        {
            if ((2 * leaseCheckTimeout.TotalMilliseconds) > leaseLostTimeout.TotalMilliseconds)
            {
                //throw new ArgumentException("lease Check Timeout must be less than lease Lost Timeout", "leaseCheckTimeout");
            }

            var client = new MongoClient(connString);

            this.database          = client.GetDatabase(databaseName);
            this.leaseCollection   = database.GetCollection <Lease>(TransportConstants.LeaseLockTable);
            this.leaseCheckTimeout = leaseCheckTimeout;
            this.leaseLostTimeout  = leaseLostTimeout;

            this.timeService = new MongoDatabaseTimeService(connString, databaseName, updateTimeInterval);

            this.dhuIdProvider = dhuIdProvider;
        }
 public static IServiceCollection AddMongoServices(this IServiceCollection services, IUnitIdProvider unitIdProvider, MongoServicesOptions options)
 {
     services.AddSingleton <IUnitIdProvider>(unitIdProvider);
     services.AddSingleton <IDbServicesFactory, MongoDbServicesFactory>();
     services.AddSingleton <IDbClusterSearchUtils, DbClusterSearchUtils>();
     services.AddSingleton <IDbClusterService, DbClusterLeaseService>(ctx =>
     {
         return(new DbClusterLeaseService(ctx.GetRequiredService <IDbClusterSearchUtils>(), options.DbClusterParameters, options.Settings));
     });
     return(services);
 }
Пример #5
0
 public ProcessingService(IUnitIdProvider dpuIdProvider, IEnumerable <IProcessorManager> processorManagers, ProcessingSettings settings)
 {
     this.dpuIdProvider     = dpuIdProvider;
     this.processorManagers = processorManagers;
     this.settings          = settings;
 }
Пример #6
0
 public MongoDbServicesFactory(IUnitIdProvider unitIdProvider)
 {
     this.unitIdProvider = unitIdProvider;
 }
Пример #7
0
 public Unit(IUnitIdProvider idProvider)
 {
     this.id = idProvider.GetNextUnitId();
 }