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); }
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 }); }
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); }
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); }
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)); }
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 }; }
public MailModel(TaskQueue.Providers.TaskMessage holder) : base(holder.MType) { this.SetHolder(holder.GetHolder()); }
public bool Enqueue(TaskQueue.Providers.TaskMessage message) { return(Enqueue(message.GetSendEnvelope())); }
public SomeExtMessage(TaskQueue.Providers.TaskMessage holder) : base(holder.MType) { this.SetHolder(holder.GetHolder()); }