public ChannelHandler(string channelName, IModel channel, ConnectionFactory connectionFactory, RabbitMQSubscription subscription) { _ProcessMessages = true; _Queues = new Dictionary <string, MessageQueue>(); _ChannelName = channelName; _Model = channel; _ConnectionFactory = connectionFactory; _Subscription = subscription; }
public DALRabbitMQ(List<RabbitMQConnection> servers) { _FireAndForgetMessages = new Queue<QueuedMessage>(10000); _ConfirmMessagesWaitingAck = new Dictionary<ulong,string>(10000); _TriggerPublishTransactionalMessages = new ManualResetEvent(false); _TriggerPublishConfirmMessages = new ManualResetEvent(false); _TriggerPublishFireAndForgetMessages = new ManualResetEvent(false); _Servers = servers; _ServerCount = _Servers.Count; SetMessageDirectory(); _Subscriptions = new RabbitMQSubscription[_ServerCount]; for (int index = 0; index < _ServerCount; index++) { _Subscriptions[index] = new RabbitMQSubscription(_Servers[index],this); } Random rnd = new Random(); _CurrentHostIndex = rnd.Next(_ServerCount); _ConfirmsMessagePath = Path.Combine(_TransactionalMessagePath, "Confirms"); _RejectedMessagePath = Path.Combine(_TransactionalMessagePath, "Rejected"); _TransactionalRequeueMessagePath = Path.Combine(_TransactionalMessagePath, "Requeue"); _ConfirmsRequeueMessagePath = Path.Combine(_ConfirmsMessagePath, "Requeue"); if (!Directory.Exists(_TransactionalMessagePath)) Directory.CreateDirectory(_TransactionalMessagePath); if (!Directory.Exists(_ConfirmsMessagePath)) Directory.CreateDirectory(_ConfirmsMessagePath); if (!Directory.Exists(_RejectedMessagePath)) Directory.CreateDirectory(_RejectedMessagePath); if (!Directory.Exists(_TransactionalRequeueMessagePath)) Directory.CreateDirectory(_TransactionalRequeueMessagePath); if (!Directory.Exists(_ConfirmsRequeueMessagePath)) Directory.CreateDirectory(_ConfirmsRequeueMessagePath); CheckForUnSentMessage(_ConfirmsMessagePath); CheckForUnSentMessage(_ConfirmsRequeueMessagePath); CheckForUnSentMessage(_TransactionalMessagePath); CheckForUnSentMessage(_TransactionalRequeueMessagePath); if (Directory.GetFiles(_TransactionalMessagePath, "*.msg").Length > 0) StartTransactionalThread(); if (Directory.GetFiles(_ConfirmsMessagePath, "*.msg").Length > 0) StartConfirmsThread(); ReadQueueFromDisk(_FireAndForgetMessages, Path.Combine(_TransactionalMessagePath, "FireAndForget")); if (_FireAndForgetMessages.Count > 0) StartFireAndForgetThread(); }
public DALRabbitMQ(List <RabbitMQConnection> servers) { _FireAndForgetMessages = new Queue <QueuedMessage>(10000); _ConfirmMessagesWaitingAck = new Dictionary <ulong, string>(10000); _TriggerPublishTransactionalMessages = new ManualResetEvent(false); _TriggerPublishConfirmMessages = new ManualResetEvent(false); _TriggerPublishFireAndForgetMessages = new ManualResetEvent(false); _Servers = servers; _ServerCount = _Servers.Count; SetMessageDirectory(); _Subscriptions = new RabbitMQSubscription[_ServerCount]; for (int index = 0; index < _ServerCount; index++) { _Subscriptions[index] = new RabbitMQSubscription(_Servers[index], this); } Random rnd = new Random(); _CurrentHostIndex = rnd.Next(_ServerCount); _ConfirmsMessagePath = Path.Combine(_TransactionalMessagePath, "Confirms"); _RejectedMessagePath = Path.Combine(_TransactionalMessagePath, "Rejected"); _TransactionalRequeueMessagePath = Path.Combine(_TransactionalMessagePath, "Requeue"); _ConfirmsRequeueMessagePath = Path.Combine(_ConfirmsMessagePath, "Requeue"); if (!Directory.Exists(_TransactionalMessagePath)) { Directory.CreateDirectory(_TransactionalMessagePath); } if (!Directory.Exists(_ConfirmsMessagePath)) { Directory.CreateDirectory(_ConfirmsMessagePath); } if (!Directory.Exists(_RejectedMessagePath)) { Directory.CreateDirectory(_RejectedMessagePath); } if (!Directory.Exists(_TransactionalRequeueMessagePath)) { Directory.CreateDirectory(_TransactionalRequeueMessagePath); } if (!Directory.Exists(_ConfirmsRequeueMessagePath)) { Directory.CreateDirectory(_ConfirmsRequeueMessagePath); } CheckForUnSentMessage(_ConfirmsMessagePath); CheckForUnSentMessage(_ConfirmsRequeueMessagePath); CheckForUnSentMessage(_TransactionalMessagePath); CheckForUnSentMessage(_TransactionalRequeueMessagePath); if (Directory.GetFiles(_TransactionalMessagePath, "*.msg").Length > 0) { StartTransactionalThread(); } if (Directory.GetFiles(_ConfirmsMessagePath, "*.msg").Length > 0) { StartConfirmsThread(); } ReadQueueFromDisk(_FireAndForgetMessages, Path.Combine(_TransactionalMessagePath, "FireAndForget")); if (_FireAndForgetMessages.Count > 0) { StartFireAndForgetThread(); } }
public ChannelHandler(string channelName, IModel channel, ConnectionFactory connectionFactory, RabbitMQSubscription subscription) { _ProcessMessages = true; _Queues = new Dictionary<string, MessageQueue>(); _ChannelName = channelName; _Model = channel; _ConnectionFactory = connectionFactory; _Subscription = subscription; }