Beispiel #1
0
 public void MemQueue_Duplications()
 {
     TaskQueue.Providers.MemQueue mq = new TaskQueue.Providers.MemQueue();
     mq.SetSelector(
         new TaskQueue.TQItemSelector("Processed", true, false)
         .Rule("field1", TaskQueue.TQItemSelectorSet.Descending)
         );
     mq.Push(new SomeExtMessage()
     {
         field1 = 1
     });
     mq.Push(new SomeExtMessage()
     {
         field1 = 3
     });
     mq.Push(new SomeExtMessage()
     {
         field1 = 2
     });
     mq.Push(new SomeExtMessage()
     {
         field1 = 1
     });
     Assert.AreEqual(mq.GetItem().Holder["field1"], 3);
     Assert.AreEqual(mq.GetItem().Holder["field1"], 2);
     TaskQueue.Providers.TaskMessage first = mq.GetItem();
     first.Processed = false;
     mq.UpdateItem(first);
     Assert.AreEqual(mq.GetItem().Holder["field1"], 1);
 }
Beispiel #2
0
        public object Put(Dictionary <string, object> m)
        {
            // save to db
            TaskQueue.Providers.TaskMessage tm = new TaskQueue.Providers.TaskMessage(m);
            bool result = false;

            //result = true;
            if (tm.MType != null)
            {
                try
                {
                    result = QueueService.ModProducer.broker.PushMessage(tm);
                    //logger.Info("push msg ok: {0}", tm);
                }
                catch (Exception e)
                {
                    logger.Exception(e, "message put", "error while message processing");
                    return(new ServiceStack.HttpResult()
                    {
                        StatusCode = HttpStatusCode.InternalServerError
                    });
                }
            }
            return(new ServiceStack.HttpResult()
            {
                StatusCode = result ? HttpStatusCode.Created :
                             HttpStatusCode.NotAcceptable
            });
        }
Beispiel #3
0
        public bool Enqueue(TaskQueue.Providers.TaskMessage message)
        {
            ApiResult result = ApiEnqueue(message.GetSendEnvelope());

            if (result != ApiResult.OK)
            {
                throw new Exception("Message rejected. Check platform configuration, perhaps message type doesn't have any channel");
            }

            return(true);
        }
Beispiel #4
0
 public void MemQueue_Fifo()
 {
     TaskQueue.Providers.MemQueue mq = new TaskQueue.Providers.MemQueue();
     mq.SetSelector();
     mq.Push(new SomeExtMessage()
     {
         field1 = 1
     });
     mq.Push(new SomeExtMessage()
     {
         field1 = 2
     });
     mq.Push(new SomeExtMessage()
     {
         field1 = 3
     });
     Assert.AreEqual(mq.GetItem().Holder["field1"], 1);
     Assert.AreEqual(mq.GetItem().Holder["field1"], 2);
     TaskQueue.Providers.TaskMessage first = mq.GetItem();
     first.Processed = true;
     mq.UpdateItem(first);// push will be ignored by Processed flag
     mq.Push(new SomeExtMessage()
     {
         field1 = 4
     });
     Assert.AreEqual(mq.GetItem().Holder["field1"], 4);
     mq.Push(new SomeExtMessage()
     {
         field1 = 5
     });
     first           = mq.GetItem();
     first.Processed = true;
     mq.UpdateItem(first);
     mq.Push(new SomeExtMessage()
     {
         field1 = 6
     });
     Assert.AreEqual(mq.GetItem().Holder["field1"], 6);
     Assert.AreEqual(mq.GetItem(), null);
 }
Beispiel #5
0
        public void CompareVMap()
        {
            TaskQueue.TQItemSelector sel = new TaskQueue.TQItemSelector("field1", TaskQueue.TQItemSelectorSet.Descending)
                                           .Rule("field2", TaskQueue.TQItemSelectorSet.Ascending);
            SomeExtMessage inst = new SomeExtMessage()
            {
                field1 = 5,
                field2 = 15
            };

            TaskQueue.Providers.TaskMessage.InternalComparableValueMap cmp =
                TaskQueue.Providers.TaskMessage.MakeComparatorValueMap(sel);
            SomeExtMessage inst_CE = new SomeExtMessage()
            {
                field1 = 6,
                field2 = 15
            };
            SomeExtMessage inst_CL = new SomeExtMessage()
            {
                field1 = 4,
                field2 = 18
            };

            TaskQueue.Providers.TaskMessage defmsg = new TaskQueue.Providers.TaskMessage("X");
            Assert.AreEqual(cmp(inst.GetValueMap(sel), inst_CE.GetValueMap(sel)),
                            TaskQueue.Providers.TaskMessage.CompareWithSelector(inst.GetHolder(), inst_CE.GetHolder(), sel));

            Assert.AreEqual(cmp(inst.GetValueMap(sel), inst_CL.GetValueMap(sel)),
                            TaskQueue.Providers.TaskMessage.CompareWithSelector(inst.GetHolder(), inst_CL.GetHolder(), sel));

            Assert.AreEqual(cmp(inst_CL.GetValueMap(sel), inst_CE.GetValueMap(sel)),
                            TaskQueue.Providers.TaskMessage.CompareWithSelector(inst_CL.GetHolder(), inst_CE.GetHolder(), sel));

            Assert.AreEqual(cmp(defmsg.GetValueMap(sel), inst_CE.GetValueMap(sel)),
                            TaskQueue.Providers.TaskMessage.CompareWithSelector(defmsg.GetHolder(), inst_CE.GetHolder(), sel));
        }
Beispiel #6
0
 public object Put(Dictionary<string, object> m)
 {
     // save to db
     TaskQueue.Providers.TaskMessage tm = new TaskQueue.Providers.TaskMessage(m);
     bool result = false;
     //result = true;
     if (tm.MType != null)
     {
         try
         {
             result = QueueService.ModProducer.broker.PushMessage(tm);
             //logger.Info("push msg ok: {0}", tm);
         }
         catch (Exception e)
         {
             logger.Exception(e, "message put", "error while message processing");
             return new ServiceStack.HttpResult()
             {
                 StatusCode = HttpStatusCode.InternalServerError
             };
         }
     }
     return new ServiceStack.HttpResult()
     {
         StatusCode = result ? HttpStatusCode.Created :
         HttpStatusCode.NotAcceptable
     };
 }
Beispiel #7
0
 public MailModel(TaskQueue.Providers.TaskMessage holder)
     : base(holder.MType)
 {
     this.SetHolder(holder.GetHolder());
 }
Beispiel #8
0
 public bool Enqueue(TaskQueue.Providers.TaskMessage message)
 {
     return(Enqueue(message.GetSendEnvelope()));
 }
Beispiel #9
0
 public SomeExtMessage(TaskQueue.Providers.TaskMessage holder)
     : base(holder.MType)
 {
     this.SetHolder(holder.GetHolder());
 }