예제 #1
0
        public static void AddQueue(string name)
        {
            McQueueProperties prop = new McQueueProperties(name);
            McQueue           rq   = McQueue.Create(prop);

            QueueManager[mqp.QueueName] = rq;
        }
예제 #2
0
        private static void AddQueue(string name)
        {
            McQueueProperties mqp = new McQueueProperties(name);
            McQueue           rq  = McQueue.Create(mqp);

            _QueueHandler[mqp.QueueName] = rq;
        }
예제 #3
0
파일: Program.cs 프로젝트: nistec/MQueue
        private static void TransWorker(IQueueItem item)
        {
            McQueue queue = McQueue.Create(qnmae);

            //queue.CommitTrans(item);
            queue.AbortTrans(item.ItemId, item.HasAttach);
            Console.WriteLine("Commit : {0}", item.ItemId);
        }
예제 #4
0
        public void ClearAllItems(string name)
        {
            McQueue q = RemoteQueueServer.QueueManager[name];

            if (q != null)
            {
                q.ClearQueueItems(QueueItemType.AllItems);
            }
        }
예제 #5
0
        public DataTable GetQueueItemsTable(string queueName)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return(null);
            }
            return(Q.GetQueueItemsTable());
        }
예제 #6
0
        public IQueueItem[] GetQueueItems(string queueName)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return(null);
            }
            return(Q.GetQueueItems());
        }
예제 #7
0
        //public object ExecuteCommand(string queueName,string commandName, string command, params string[] param)
        //{
        //    McQueue Q = QueueManager[queueName];
        //    if (Q == null)
        //        return null;
        //    return Q.ExecuteCommand(commandName, command, param);
        //}
        public void SetProperty(string queueName, string propertyName, object propertyValue)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return;
            }
            Q.SetProperty(propertyName, propertyValue);
        }
예제 #8
0
        public object GetProperty(string queueName, string propertyName)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return(null);
            }
            return(Q.GetProperty(propertyName));
        }
예제 #9
0
        public int MaxCapacity(string queueName)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return(0);
            }
            return(Q.MaxCapacity);
        }
예제 #10
0
        public bool CanQueue(string queueName, uint count)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return(false);
            }
            return(Q.CanQueue(count));
        }
예제 #11
0
        internal static void AddQueue(McQueueProperties prop)
        {
            if (_QueueHandler.ContainsKey(prop.QueueName))
            {
                return;
            }

            McQueue rq = McQueue.Create(prop);

            _QueueHandler[prop.QueueName] = rq;
        }
예제 #12
0
파일: Program.cs 프로젝트: nistec/MQueue
        // Provides an event handler for the ReceiveCompleted event.
        private static void MsgReceiveCompleted(IAsyncResult asyncResult)
        {
            // Connect to the queue.
            McQueue queue = McQueue.Create(qnmae);

            // End the asynchronous receive operation.
            IQueueItem item = queue.EndReceive(asyncResult);

            Console.WriteLine("Message received: {0}", item.ItemId);
            TransWorker(item);
        }
예제 #13
0
        public bool Initilaized(string queueName)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return(false);
            }

            return(Q.Initilaized);
        }
예제 #14
0
        public int Count(string queueName)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return(0);
            }

            return(Q.Count);
        }
예제 #15
0
        public bool IsTrans(string queueName)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return(false);
            }

            return(Q.IsTrans);
        }
예제 #16
0
        static void Main(string[] args)
        {
            Netlog.Info("test log");

            string qtype = "remote";

            string queueName = "NC_DEMO";

            /*
             * RemotingTable rt = new RemotingTable();
             * rt.AddTrans("123",new TimeSpan(0,0,30));
             * //rt.Push("123", "hello");
             *
             * TransItem ti= rt.Pop("123");
             * Console.WriteLine(ti.ItemState.ToString());
             * //rt.Push("123", "hello");
             * Console.WriteLine("trans push");
             */

            //if (args.Length == 0)
            //{
            //    throw new ArgumentNullException("Invalid argument");
            //}


            //McQueueProperties prop = new McQueueProperties(queueName);

            //prop.CoverMode = CoverMode.FileSystem;
            //prop.Server = 0;
            //prop.IsTrans = false;
            //McQueue queue = McQueue.Create(prop);


            if (qtype == "queue")
            {
                McQueue q = new McQueue("demo");
            }
            else
            {
                RemoteQueueInserter qi = new RemoteQueueInserter(args);
                while (true)
                {
                    DateTime start = DateTime.Now;
                    qi.Start(1000);
                    TimeSpan ts = DateTime.Now.Subtract(start);
                    Console.WriteLine("Total secondes={0}", ts.TotalSeconds);
                    Thread.Sleep(2000);
                }
            }

            Console.ReadLine();
        }
예제 #17
0
        public string Dequeue(string queueName, Guid ptr)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return(null);
            }

            IQueueItem item = Q.Dequeue(ptr);

            return(SerializeItem(item));
        }
예제 #18
0
        public string Peek(string queueName, Priority priority)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return(null);
            }

            IQueueItem item = Q.Peek(priority);

            return(SerializeItem(item));
        }
예제 #19
0
        public string Dequeue(string queueName)
        {
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return(null);
            }

            IQueueItem item = Q.Dequeue();

            //Netlog.InfoFormat("Dequeue:{0} item:{1}", DateTime.Now, item.MessageId);
            return(SerializeItem(item));
        }
예제 #20
0
        public void ReEnqueue(string queueName, string serItem)
        {
            QueueItem item = QueueItem.Deserialize(serItem);

            if (item != null)
            {
                McQueue Q = QueueManager[queueName];
                if (Q == null)
                {
                    return;
                }

                Q.ReEnqueue(item as IQueueItem);
            }
        }
예제 #21
0
        public McQueue AddQueue(McQueueProperties mqp)
        {
            if (_QueueHandler.ContainsKey(mqp.QueueName))
            {
                //throw new ArgumentException(aqt.QueueName + " allready exists");
                return(_QueueHandler[mqp.QueueName]);
            }

            McQueue rq = new McQueue(mqp);

            //rq.ErrorOcurred += new ErrorOcurredEventHandler(rq_ErrorOcurred);
            //rq.ReceiveCompleted += new QueueItemEventHandler(rq_ReceiveCompleted);
            _QueueHandler[mqp.QueueName] = rq;

            return(rq);
        }
예제 #22
0
        public void CommitTrans(string queueName, Guid ItemId, bool hasAttach)
        {
            //QueueItem item = QueueItem.Deserialize(serItem);
            //if (item != null)
            //{
            //    QueueManager[queueName].CommitTrans(serItem);
            //}
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return;
            }

            Q.CommitTrans(ItemId, hasAttach);
        }
예제 #23
0
        public void Completed(string queueName, Guid ItemId, int status, bool hasAttach)
        {
            //QueueItem item = QueueItem.Deserialize(serItem);
            //if (item != null)
            //{
            //    QueueManager[queueName].Completed(item.ItemId, (ItemState)status);
            //}
            McQueue Q = QueueManager[queueName];

            if (Q == null)
            {
                return;
            }

            Q.Completed(ItemId, status, hasAttach);
        }
예제 #24
0
파일: Program.cs 프로젝트: nistec/MQueue
        private static void RunAsyncQueue()
        {
            DateTime          start = DateTime.Now;
            McQueueProperties prop  = new McQueueProperties(qnmae);

            //prop.ConnectionString = cnn;
            prop.CoverMode = CoverMode.FileSystem;//.ItemsAndLog;
            prop.Server    = 0;
            //prop.Provider = QueueProvider.SqlServer;
            prop.IsTrans = true;
            McQueue queue = McQueue.Create(prop);

            //queue.ReceiveCompleted += new ReceiveCompletedEventHandler(q_DequeueCompleted);
            IQueueItem[] items = CreateItems(3, queue);

            int count = queue.Count;

            Console.WriteLine("start enqueue");

            //CreateItems(10,queue);

            count = queue.Count;
            int index = 0;

            Console.WriteLine("count:{0}", count);

            queue.Enqueue(items[0]);
            queue.Enqueue(items[1]);
            queue.Enqueue(items[2]);

            //IQueueItem item= queue.Dequeue();
            //queue.CommitTrans(item);


            while (true)//index < count)
            {
                queue.BeginReceive(null);
                //queue.BeginReceive(TimeSpan.FromSeconds(10.0), 0,
                //    new AsyncCallback(MsgReceiveCompleted));
                index++;
                Thread.Sleep(10);
            }
            TimeSpan ts = DateTime.Now.Subtract(start);

            Console.WriteLine("took:{0}", ts.TotalSeconds);
            //signal.WaitOne();
        }
예제 #25
0
        public void RemoveQueue(string queueName)//IDictionary prop)
        {
            //McQueueProperties mqp = McQueueProperties.Create(prop);

            if (_QueueHandler.ContainsKey(queueName))//mqp.QueueName))
            {
                _QueueHandler.Remove(queueName);
                McQueue.Delete(queueName);
                //mqp.RemoveQueue();
            }

            //if (_QueueHandler.ContainsKey(name))
            //{
            //    //this[name].RemoveQueue(name);
            //    _QueueHandler.Remove(name);

            //    McQueueProperties.RemoveFromRegistry(name);
            //}
        }
예제 #26
0
파일: MQueueDemo.cs 프로젝트: nistec/MQueue
        public static void RunAsyncQueue()
        {
            DateTime start = DateTime.Now;

            QueueClient client = new QueueClient();

            McQueueProperties prop = new McQueueProperties(qnmae);

            //prop.ConnectionString = cnn;
            //prop.CoverMode = CoverMode.ItemsAndLog;
            //prop.Server = 0;
            //prop.Provider = QueueProvider.SqlServer;
            //prop.IsTrans = true;
            queue = McQueue.Create(prop);
            //queue.ReceiveCompleted += new ReceiveCompletedEventHandler(q_DequeueCompleted);


            Console.WriteLine("start enqueue");
            QueueInserter.InsertItems(100, queue);
            int count = queue.Count;

            Console.WriteLine("count:{0}", count);

            QueueListner();


            int index = 0;


            while (true)//index < count)
            {
                queue.BeginReceive(null);
                //queue.BeginReceive(TimeSpan.FromSeconds(10.0), 0,
                //    new AsyncCallback(MsgReceiveCompleted));
                index++;
                Thread.Sleep(10);
            }
            TimeSpan ts = DateTime.Now.Subtract(start);

            Console.WriteLine("took:{0}", ts.TotalSeconds);
            //signal.WaitOne();
        }
예제 #27
0
파일: Program.cs 프로젝트: nistec/MQueue
        static void q_DequeueCompleted(object sender, ReceiveCompletedEventArgs e)
        {
            // Connect to the queue.
            McQueue mq = (McQueue)sender;

            // End the asynchronous receive operation.
            IQueueItem item = mq.EndReceive(e.AsyncResult);

            Console.WriteLine(item.ItemId.ToString());
            TransWorker(item);

            //count += 1;
            //if (count == 10)
            //{
            //    signal.Set();
            //}
            //signal.Set();
            // Restart the asynchronous receive operation.
            //mq.BeginReceive();
        }
예제 #28
0
        public static void AddQueue(McQueueProperties prop)
        {
            McQueue rq = McQueue.Create(prop);

            QueueManager[prop.QueueName] = rq;
        }
예제 #29
0
        //internal static void LoadQueues()
        //{

        //    McQueueProperties[] props = null;// McQueueProperties.CreateFromRegistry(ServiceConfig.Provider, ServiceConfig.ConnectionString);
        //    if (props == null)
        //        return;

        //    foreach (McQueueProperties p in props)
        //    {
        //        AddQueue(p);
        //    }
        // }

        public static DataTable QueueItems()
        {
            return(McQueue.GetAllCoverItems());//ServiceConfig.Provider, ServiceConfig.ConnectionString);
        }