Example #1
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));
        }
Example #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, 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;
        }