HTML5技术

Asp.net 面向接口可扩展框架之消息队列组件 - xiangji(5)

字号+ 作者:H5之家 来源:H5之家 2016-05-24 10:00 我要评论( )

TestJson(){Fang.Serialization.DataContractJson.Provider provider0 = new Fang.Serialization.DataContractJson.Provider();Fang.Serialization.Formater QueueTest, System.IO.Stream formater = new Serializa

TestJson() { Fang.Serialization.DataContractJson.Provider provider0 = new Fang.Serialization.DataContractJson.Provider(); Fang.Serialization.Formater<QueueTest, System.IO.Stream> formater = new Serialization.Formater<QueueTest, System.IO.Stream>() { Provider = provider0 }; Fang.MSMQ.Queue<QueueTest> queue = , Serializer = formater, Deserializer = formater }; queue.Init(); QueueChannel<QueueTest> channel = new QueueChannel<QueueTest>() { QueueBuffer = queue, }; Produce<QueueTest> producer = new Produce<QueueTest>() { }; channel.AddProducer(producer); channel.Init(); channel.Start(); producer.SendMessage( }); }

在新的消息队列中使用Json序列化的方式发的

6、MSMQ消息队列非常简单,公布源代码给大家看一下(还没完全写完,很多功能待完善)

MSMQ队列 Queue<TEntity> : Formatter<TEntity>, IEntityQueue<TEntity>, IUnitInit { #region 定义 Queue() { Host = ; Path = ; Name = ; BufferSize = Int16.MaxValue; if (ReceiveTimeOut < 1) ReceiveTimeOut = 1000D; _receiveTime = TimeSpan.FromMilliseconds(ReceiveTimeOut); } private MessageQueue _provider; 队列功能支持原始对象 MessageQueue Provider { get { return _provider; } } private TimeSpan _receiveTime; Path { get; set; } Name { get; set; } 主机 Host { get; set; } 单位(Millisecond) ReceiveTimeOut { get; set; } #endregion #region IEntityQueue<TEntity> TryDequeue(ref TEntity entity) { if (_provider == null) return false; Message message = null; try { message = _provider.Receive(_receiveTime); } catch { return false; } if (message == null) return false; return Transform.TryConvert<object, TEntity>(message.Body, ref entity); } TEntity Dequeue() { TEntity entity = default(TEntity); TryDequeue(ref entity); return entity; } Enqueue(TEntity entity) { if (entity == null || _provider == null) return false; Message message = new Message(); message.Body = entity; message.Formatter = this; try { _provider.Send(message); } catch { return false; } return true; } BufferSize { get; set; } Count() { if (_provider == null) return 0; return 100; } #endregion #region IUnitInit 初始化 Init() { , Path, , Name); if (!MessageQueue.Exists(fullName)) { MessageQueue.Create(fullName); } _provider = new MessageQueue(fullName); _provider.Formatter = this; } 清空 Clear() { if (_provider == null) return; _provider.Purge(); } //public static string CreatePath(string host,string path) //{ //} }

Queue

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 如何在 ASP.NET Core 中发送邮件 - Savorboard

    如何在 ASP.NET Core 中发送邮件 - Savorboard

    2017-05-02 08:02

  • 十二个 ASP.NET Core 例子 - Savorboard

    十二个 ASP.NET Core 例子 - Savorboard

    2017-04-27 16:01

  • ASP.NET MVC5请求管道和生命周期 - 雪飞鸿

    ASP.NET MVC5请求管道和生命周期 - 雪飞鸿

    2017-04-24 08:04

  • 调取百度地图接口,实现取自己的实时位置,然后可以在百度地图上添加信息标注 - QISHUANG

    调取百度地图接口,实现取自己的实时位置,然后可以在百度地图上添加

    2017-04-18 10:02

网友点评
j