Пример #1
0
        public void Start()
        {
            AssertNotDisposedOrDisposing();

            if (wasStarted)
            {
                throw new InvalidOperationException("The Start method may not be invoked more than once.");
            }

            receiver = new Receiver(endpoint, enableEndpointPortAutoSelection, AcceptMessages);
            receiver.Start();

            queuedMessagesSender = new QueuedMessagesSender(queueStorage, this);
            sendingThread        = new Thread(queuedMessagesSender.Send)
            {
                IsBackground = true,
                Name         = "Rhino Queue Sender Thread for " + path
            };
            sendingThread.Start();
            purgeOldDataTimer = new Timer(_ => PurgeOldData(), null,
                                          TimeSpan.FromMinutes(3),
                                          TimeSpan.FromMinutes(3));

            wasStarted = true;
        }
Пример #2
0
        public void Start()
        {
            AssertNotDisposedOrDisposing();

            if (_wasStarted)
            {
                throw new InvalidOperationException("The Start method may not be invoked more than once.");
            }

            _receiver = new Receiver(_endpoint, AcceptMessages);
            _receiver.Start();

            _choke = new SendingChoke();
            _queuedMessagesSender = new QueuedMessagesSender(_queueStorage, _choke, _logger);
            _sendingThread        = new Thread(_queuedMessagesSender.Send)
            {
                IsBackground = true,
                Name         = "Lightning Queues Sender Thread for " + _path
            };
            _sendingThread.Start();
            _wasStarted = true;
        }
Пример #3
0
        public QueueManager(IPEndPoint endpoint, string path)
        {
            NumberOfMessagesToKeepInProcessedQueues = 100;
            NumberOfMessagesToKeepOutgoingQueues    = 100;
            NumberOfReceivedMessagesToKeep          = 100000;
            OldestMessageInProcessedQueues          = TimeSpan.FromDays(3);
            OldestMessageInOutgoingQueues           = TimeSpan.FromDays(3);

            this.endpoint = endpoint;
            this.path     = path;
            queueStorage  = new QueueStorage(path);
            queueStorage.Initialize();

            queueStorage.Global(actions =>
            {
                receivedMsgs.Add(actions.GetAlreadyReceivedMessageIds());

                actions.Commit();
            });

            receiver = new Receiver(endpoint, AcceptMessages);
            receiver.Start();

            HandleRecovery();

            queuedMessagesSender = new QueuedMessagesSender(queueStorage, this);
            sendingThread        = new Thread(queuedMessagesSender.Send)
            {
                IsBackground = true,
                Name         = "Rhino Queue Sender Thread for " + path
            };
            sendingThread.Start();
            purgeOldDataTimer = new Timer(PurgeOldData, null,
                                          TimeSpan.FromMinutes(3),
                                          TimeSpan.FromMinutes(3));
        }