//ctor
 public CheckLockExpirationCommand(ILockTracker <TKey> lockTracker, ISignalDispatchQueries <TKey> dispatchQueries,
                                   SenderSettings settings)
 {
     _lockTracker     = lockTracker;
     _dispatchQueries = dispatchQueries;
     _settings        = settings;
 }
 public DatabaseDispatchProvider(IDispatchQueue <TKey> dispatchQueues, IMonitor <TKey> eventSink, SenderSettings senderSettings,
                                 IDispatchChannelRegistry <TKey> dispatcherRegistry, ISignalDispatchQueries <TKey> dispatchQueries,
                                 ILogger logger, IChangeNotifier <SignalDispatch <TKey> > changeNotifier,
                                 ILockTracker <TKey> lockTracker, IConsolidationLockTracker <TKey> consolidationLockTracker)
     : this(dispatchQueues, eventSink, senderSettings, dispatcherRegistry, dispatchQueries, logger, lockTracker, consolidationLockTracker)
 {
     _changeNotifier = changeNotifier;
 }
        //init
        public DatabaseDispatchProvider(IDispatchQueue <TKey> dispatchQueue, IMonitor <TKey> eventSink, SenderSettings senderSettings,
                                        IDispatchChannelRegistry <TKey> dispatcherRegistry, ISignalDispatchQueries <TKey> dispatchQueries, ILogger logger,
                                        ILockTracker <TKey> lockTracker, IConsolidationLockTracker <TKey> consolidationLockTracker)
        {
            _dispatchQueue            = dispatchQueue;
            _monitor                  = eventSink;
            _dispatcherRegistry       = dispatcherRegistry;
            _dispatchQueries          = dispatchQueries;
            _logger                   = logger;
            _lockTracker              = lockTracker;
            _consolidationLockTracker = consolidationLockTracker;
            _senderSettings           = senderSettings;

            QueryPeriod       = senderSettings.DatabaseSignalProviderQueryPeriod;
            ItemsQueryCount   = senderSettings.DatabaseSignalProviderItemsQueryCount;
            MaxFailedAttempts = senderSettings.DatabaseSignalProviderItemsMaxFailedAttempts;
        }
Esempio n. 4
0
        //init
        public SignalDispatchFlushJob(SenderSettings senderSettings, ITemporaryStorage <SignalDispatch <TKey> > temporaryStorage,
                                      ISignalDispatchQueries <TKey> dispatchQueries, ILockTracker <TKey> dispatchLockTracker,
                                      IConsolidationLockTracker <TKey> consolidationLockTracker)
            : base(senderSettings, temporaryStorage, dispatchQueries)
        {
            _dispatchQueries          = dispatchQueries;
            _dispatchLockTracker      = dispatchLockTracker;
            _consolidationLockTracker = consolidationLockTracker;

            IsTemporaryStorageEnabled   = senderSettings.SignalQueueIsTemporaryStorageEnabled;
            _temporaryStorageParameters = new TemporaryStorageParameters()
            {
                QueueType     = NotificationsConstants.TS_DISPATCH_QUEUE_KEY,
                EntityVersion = NotificationsConstants.TS_ENTITIES_VERSION
            };

            //how to flush items
            _flushQueues[FlushAction.DeleteConsolidated] = new FlushQueue <SignalWrapper <SignalDispatch <TKey> > >(signals => DeleteConsolidatedDispatches(signals));

            //what to do after flushing
            _flushedItemsHandlers.Add(ForgetDispatchLocks);
            _flushedItemsHandlers.Add(ForgetConsolidationLocks);
        }