/// <summary>
 /// Initializes a new instance of the <see cref="WorkerHeartBeatNotificationFactory" /> class.
 /// </summary>
 /// <param name="container">The container.</param>
 /// <param name="configuration">The configuration.</param>
 public WorkerHeartBeatNotificationFactory(IContainerFactory container, IHeartBeatConfiguration configuration)
 {
     Guard.NotNull(() => container, container);
     Guard.NotNull(() => configuration, configuration);
     _container = container;
     _configuration = configuration;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="HeartBeatWorker" /> class.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <param name="context">The context.</param>
        /// <param name="sendHeartBeat">The send heart beat.</param>
        /// <param name="threadPool">The thread pool.</param>
        /// <param name="log">The log.</param>
        /// <param name="heartBeatNotificationFactory">The heart beat notification factory.</param>
        public HeartBeatWorker(IHeartBeatConfiguration configuration, 
            IMessageContext context,
            ISendHeartBeat sendHeartBeat,
            IHeartBeatThreadPool threadPool,
            ILogFactory log,
            IWorkerHeartBeatNotificationFactory heartBeatNotificationFactory)
        {
            Guard.NotNull(() => configuration, configuration);
            Guard.NotNull(() => context, context);
            Guard.NotNull(() => sendHeartBeat, sendHeartBeat);
            Guard.NotNull(() => threadPool, threadPool);
            Guard.NotNull(() => log, log);
            Guard.NotNull(() => heartBeatNotificationFactory, heartBeatNotificationFactory);

            _context = context;
            _checkTimespan = configuration.CheckTime;
            _sendHeartbeat = sendHeartBeat;
            _smartThreadPool = threadPool;
            _logger = log.Create();

            _runningLock = new ReaderWriterLockSlim();
            _stoppedLock = new ReaderWriterLockSlim();

            _cancel = new CancellationTokenSource();
            context.WorkerNotification.HeartBeat = heartBeatNotificationFactory.Create(_cancel.Token);
        }
Example #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="QueueMonitor" /> class.
        /// </summary>
        /// <param name="clearMessagesFactory">The clear messages factory.</param>
        /// <param name="heartBeatFactory">The heart beat factory.</param>
        /// <param name="heartBeatConfiguration">The heart beat configuration.</param>
        /// <param name="expirationConfiguration">The expiration configuration.</param>
        public QueueMonitor(IClearExpiredMessagesMonitor clearMessagesFactory,
            IHeartBeatMonitor heartBeatFactory,
            IHeartBeatConfiguration heartBeatConfiguration,
            IMessageExpirationConfiguration expirationConfiguration)
        {
            Guard.NotNull(() => clearMessagesFactory, clearMessagesFactory);
            Guard.NotNull(() => heartBeatFactory, heartBeatFactory);
            Guard.NotNull(() => heartBeatConfiguration, heartBeatConfiguration);
            Guard.NotNull(() => expirationConfiguration, expirationConfiguration);

            _heartBeatConfiguration = heartBeatConfiguration;
            _heartBeatFactory = heartBeatFactory;
            _clearMessagesFactory = clearMessagesFactory;
            _expirationConfiguration = expirationConfiguration;
            _monitors = new List<IMonitor>(2);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="QueueConsumerConfiguration" /> class.
        /// </summary>
        /// <param name="transportConfiguration">The transport configuration.</param>
        /// <param name="workerConfiguration">The worker configuration.</param>
        /// <param name="heartBeatConfiguration">The heart beat configuration.</param>
        /// <param name="messageExpirationConfiguration">The message expiration configuration.</param>
        /// <param name="headers">The headers.</param>
        /// <param name="additionalConfiguration">The additional configuration.</param>
        /// <param name="timeConfiguration">The time configuration.</param>
        public QueueConsumerConfiguration(TransportConfigurationReceive transportConfiguration, 
            IWorkerConfiguration workerConfiguration, 
            IHeartBeatConfiguration heartBeatConfiguration, 
            IMessageExpirationConfiguration messageExpirationConfiguration, 
            IHeaders headers,
            IConfiguration additionalConfiguration,
            BaseTimeConfiguration timeConfiguration)
            : base(transportConfiguration, headers, additionalConfiguration, timeConfiguration)
        {
            Guard.NotNull(() => workerConfiguration, workerConfiguration);
            Guard.NotNull(() => heartBeatConfiguration, heartBeatConfiguration);
            Guard.NotNull(() => messageExpirationConfiguration, messageExpirationConfiguration);

            Worker = workerConfiguration;
            HeartBeat = heartBeatConfiguration;
            MessageExpiration = messageExpirationConfiguration;
            _routes = new List<string>();
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="HeartBeatWorkerFactory" /> class.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <param name="sendHeartBeat">The send heart beat module.</param>
        /// <param name="threadPool">The thread pool.</param>
        /// <param name="logFactory">The log factory.</param>
        /// <param name="heartBeatNotificationFactory">The heart beat notification factory.</param>
        public HeartBeatWorkerFactory(IHeartBeatConfiguration configuration,
            ISendHeartBeat sendHeartBeat,
            IHeartBeatThreadPoolFactory threadPool,
            ILogFactory logFactory,
            IWorkerHeartBeatNotificationFactory heartBeatNotificationFactory)
        {
            Guard.NotNull(() => configuration, configuration);
            Guard.NotNull(() => sendHeartBeat, sendHeartBeat);
            Guard.NotNull(() => threadPool, threadPool);
            Guard.NotNull(() => logFactory, logFactory);
            Guard.NotNull(() => heartBeatNotificationFactory, heartBeatNotificationFactory);

            _configuration = configuration;
            _sendHeartBeat = sendHeartBeat;
            _threadPool = threadPool;
            _logFactory = logFactory;
            _heartBeatNotificationFactory = heartBeatNotificationFactory;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="HeartBeatMonitor" /> class.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <param name="resetHeartBeat">The reset heart beat module.</param>
        /// <param name="log">The log.</param>
        public HeartBeatMonitor(IHeartBeatConfiguration configuration, IResetHeartBeat resetHeartBeat, ILogFactory log): base(Guard.NotNull(() => resetHeartBeat, resetHeartBeat).Reset, configuration, log)
        {

        }