public async Task DequeueTest()
        {
            // define
            IQueueConsumer consumer = new AzureSBTopicConsumer(new LoggerFactory(), _configuration, new DefaultJsonSerializer(), "subscriber");

            // dequeue
            // TODO
            AutoResetEvent _autoResetEvent = new AutoResetEvent(false);
            QMessage       recievedMsg     = null;
            QProperties    oProperties     = null;

            consumer.MessageRecieved += (m, o) =>
            {
                consumer.Unsubscribe();
                recievedMsg = o;
                oProperties = o.Properties;
                _autoResetEvent.Set();
            };

            consumer.Subscribe();


            Assert.True(_autoResetEvent.WaitOne(3000));
            Assert.NotNull(recievedMsg);
        }
Ejemplo n.º 2
0
        public IQueueItem AddQueue(QProperties prop, out MQueue mq)
        {
            if (MQ.ContainsKey(prop.QueueName))
            {
                //if (prop.ReloadOnStart)
                //{
                //    MQueue q = new MQueue(prop);
                //    MQ[prop.QueueName] = q;
                //    mq = q;
                //}
                //else
                //{
                //    mq = MQ[prop.QueueName];
                //}
                mq = MQ[prop.QueueName];
                return(QueueItem.Ack(MessageState.AllreadyExists, QueueCmd.AddQueue, "AllreadyExists, Name: " + prop.QueueName, null));
            }
            //if (prop.IsDbQueue)
            //{
            //    AddDbQueue(prop.QueueName, prop.IsTrans);
            //}
            MQueue queue = new MQueue(prop);

            //LoadQueue(queue, prop);
            MQ[prop.QueueName] = queue;
            mq = queue;
            Logger.Info("AddQueue : {0}", prop.Print());
            //return  MessageState.Ok;

            return(QueueItem.Ack(MessageState.Ok, QueueCmd.AddQueue));
        }
Ejemplo n.º 3
0
        public MessageState AddQueue(QProperties prop, out MQueue mq)
        {
            if (MQ.ContainsKey(prop.QueueName))
            {
                if (prop.ReloadOnStart)
                {
                    MQueue q = new MQueue(prop);
                    MQ[prop.QueueName] = q;
                    mq = q;
                }
                else
                {
                    mq = MQ[prop.QueueName];
                }
                return(MessageState.AllreadyExists);
            }
            //if (prop.IsDbQueue)
            //{
            //    AddDbQueue(prop.QueueName, prop.IsTrans);
            //}
            MQueue queue = new MQueue(prop);

            MQ[prop.QueueName] = queue;
            mq = queue;
            Netlog.InfoFormat("AddQueue : {0}", prop.Print());
            return(MessageState.Ok);
        }
Ejemplo n.º 4
0
        void LoadJournalQueue()
        {
            if (JournalQueue != null)
            {
                return;
            }
            var journalProp = new QProperties("journal", false, CoverMode.Memory);

            journalProp.ReloadOnStart = true;
            JournalQueue = new PriorityPersistQueue(journalProp);
        }
Ejemplo n.º 5
0
        public TopicDispatcher(QueueController controller)
        {
            Controller  = controller;
            Initialized = false;
            SendDirect  = true;
            var topicProp = new QProperties("TopicEvent", false, CoverMode.Memory);

            EventQueue = new PriorityPersistQueue(topicProp);
            Logger     = QLogger.Logger.ILog;
            //m_Topic = new Topics();
        }
Ejemplo n.º 6
0
        public IQueueItem AddQueue(QProperties qp)
        {
            var message = new QueueRequest()
            {
                Host     = _QueueName,
                QCommand = QueueCmd.AddQueue,
            };

            message.SetBody(qp.GetEntityStream(false), qp.GetType().FullName);
            var response = ConsumItem(message, ConnectTimeout);

            return(response);// == null ? null : response.ToMessage();
        }
Ejemplo n.º 7
0
        private void CreateItem()
        {
            m_QueueItem = new QProperties(this.txtKey.Text);

            //m_QueueItem.ConnectionString = this.txtConnection.Text;
            m_QueueItem.Mode = CoverMode;
            //m_QueueItem.Server = 0;
            //m_QueueItem.Provider = (QueueProvider)this.cbProvider.SelectedIndex;

            AgentManager.Queue.AddQueue(m_QueueItem);


            Close();
        }
        public void RabbitMq_Subscribe()
        {
            var publisherSettings = GetConfig("publisherFanout");
            var consumerSettings  = GetConfig("subscriberFanout");

            // check if config exists
            Assert.NotNull(publisherSettings);
            Assert.NotNull(consumerSettings);

            IQueue cQueue = new RbmqQueue(new NullLoggerFactory(), consumerSettings, false);
            IQueue pQueue = new RbmqQueue(new NullLoggerFactory(), publisherSettings, true);

            cQueue.Clear();
            pQueue.Clear();


            var message = new QMessage()
            {
                Body       = "test",
                Properties = new QProperties()
                {
                    ReplyTo = "test"
                }
            };

            pQueue.Enqueue(message);

            QProperties    oProperties     = null;// = o.Properties;
            string         replyTo         = string.Empty;
            AutoResetEvent _autoResetEvent = new AutoResetEvent(false);
            QMessage       recievedMsg     = null;

            cQueue.MessageRecieved += (m, o) =>
            {
                cQueue.Unsubscribe();
                recievedMsg = o;
                oProperties = o.Properties;
                replyTo     = o.Properties.ReplyTo;
                _autoResetEvent.Set();
            };

            cQueue.Subscribe();


            Assert.True(_autoResetEvent.WaitOne(3000));
            Assert.NotNull(recievedMsg);

            //Assert.That(oProperties, Is.Not.Null);
            //Assert.That(replyTo, Is.EqualTo("test"));
        }
Ejemplo n.º 9
0
        internal NetStream ExecRequset(QueueMessage request)
        {
            switch (request.Command)
            {
            case QueueCmd.Abort:

                break;

            case QueueCmd.AddQueue:
                MQueue mq = null;
                return(QueueMessage.DoAck(AddQueue(QProperties.Get(request.Headers), out mq), null));

            case QueueCmd.Commit:
                break;

            case QueueCmd.Dequeue:
            case QueueCmd.DequeueItem:
            case QueueCmd.DequeuePriority:
            case QueueCmd.Peek:
            case QueueCmd.PeekItem:
            case QueueCmd.PeekPriority:
                return(QueueMessage.DoResponse(ExecGet(request)));

            case QueueCmd.Enqueue:
                return(QueueMessage.DoAck(ExecSet(request), null));

            case QueueCmd.Exists:
                return(QueueMessage.DoAck(Exists(request.Host), null));

            case QueueCmd.QueueProperty:
                break;

            case QueueCmd.RemoveQueue:
                return(QueueMessage.DoAck(RemoveQueue(request.Host), null));

            //case QueueCmd.ReportQueueItems:
            //    GetQueueItems(message.GetHostName());
            //    break;
            //case QueueCmd.ReportQueueItemsTable:
            //    GetQueueItemsTable(message.GetHostName());
            //    break;
            case QueueCmd.ReportQueueList:
                GetQueueList();
                break;
            }

            return(null);
        }
Ejemplo n.º 10
0
        public IQueueItem AddQueue(CoverMode mode, bool isTrans, bool isTopic)
        {
            QProperties qp = new QProperties()
            {
                QueueName      = _QueueName,
                ServerPath     = "localhost",
                Mode           = mode,
                IsTrans        = isTrans,
                MaxRetry       = QueueDefaults.DefaultMaxRetry,
                ReloadOnStart  = false,
                ConnectTimeout = 0,
                TargetPath     = "",
                IsTopic        = isTopic
            };

            return(AddQueue(qp));
            //var message = new QueueItem()
            //{
            //    Host = _QueueName,
            //    Command = QueueCmd.AddQueue,
            //};

            //message.SetBody(qp.GetEntityStream(false), qp.GetType());

            //GenericNameValue header = new GenericNameValue();

            //header.Add("QueueName", _QueueName);
            //header.Add("ServerPath", "localhost");
            //header.Add("Mode", (int)mode);
            //header.Add("IsTrans", isTrans);
            //header.Add("MaxRetry", QueueDefaults.DefaultMaxRetry);
            //header.Add("ReloadOnStart", false);
            //message.SetHeader(header);
            //message.SetBody(qp);

            //var response=base.SendDuplex(message);
            //return response;// == null ? null : response.ToMessage();
            //ReportApi client = new ReportApi(QueueDefaults.QueueManagerPipeName, true);
            //var res= client.Exec(message, QueueCmd.AddQueue);
            //return (Message)res;// client.Exec(message, QueueCmd.AddQueue);
        }
Ejemplo n.º 11
0
        public void LoadQueueConfig()
        {
            var config = QueueServerConfig.GetConfig();

            var items = config.RemoteQueueSettings;

            foreach (QueueServerConfigItem item in items)
            {
                var prop = new QProperties(item.QueueName, item.IsTrans, (CoverMode)item.CoverMode);
                AddQueue(prop);
                QLog.Info("Queue Added: {0}", prop.Print());
            }

            //if (!QueueLoaded)
            //{
            //    System.Configuration.Configuration config =
            //ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            //    XmlDocument doc = new XmlDocument();
            //    doc.Load(config.FilePath);

            //    Console.WriteLine("Load Config: " + config.FilePath);

            //    XmlNode root = doc.SelectSingleNode("//remoteSettings");
            //    XmlNodeList list = root.ChildNodes;

            //    for (int i = 0; i < list.Count; i++)
            //    {
            //        //n.FirstChild.ChildNodes[1].InnerText
            //        McQueueProperties prop =
            //            new McQueueProperties(list[i]);
            //        //prop.ConnectionString = ConnectionString;
            //        //prop.Provider = Provider;
            //        Console.WriteLine("Load: " + prop.QueueName);

            //        RemoteQueueManager.AddQueue(prop);
            //    }
            //    QueueLoaded = true;
            //}
        }
Ejemplo n.º 12
0
        /// <summary>Creates Message Queuing queue by specified properties.</summary>
        /// <param name="prop">The queue properties. </param>
        /// <returns>A <see cref="T:Nistec.Messaging.MQueue"></see> that represents the new queue.</returns>
        public MQueue AddQueue(QProperties prop)
        {
            //prop.IsValid(lockKey);

            if (MQ.ContainsKey(prop.QueueName))
            {
                if (prop.ReloadOnStart)
                {
                    MQueue q = new MQueue(prop);
                    MQ[prop.QueueName] = q;
                    return(q);
                }
                return((MQueue)MQ[prop.QueueName]);
            }
            //if (prop.IsDbQueue)
            //{
            //    AddDbQueue(prop.QueueName, prop.IsTrans);
            //}
            MQueue queue = new MQueue(prop);

            MQ[prop.QueueName] = queue;

            return(queue);
        }