MSMQ
1.安装MSMQ
2.添加私有的队列
3.MSMQ可以发送的类型可以是任意类型,包括类
- static string strServer = @"FormatName:Direct=TCP:10.7.46.42\private$\msmq";
- static void Main(string[] args)
- {
- DeleteAllMessage();
- SendMessage();
- ReveiveMessage();
- }
- public static void DeleteAllMessage()
- {
- MessageQueue myQueue = new MessageQueue(strServer);
- myQueue.Purge(); //删除此队列中包含的所有消息
- myQueue.Dispose();
- }
- public static void SendMessage()
- {
- MessageQueue myQueue = new MessageQueue(strServer);
- Message myMessage = new Message();
- try
- {
- myMessage.Body = new Person() { Name = "jake", Age = 29, Birthday = Convert.ToDateTime("1987/07/20") };
- myMessage.Formatter = new XmlMessageFormatter(new Type[] { typeof(Person) });
- //设置消息发送的优先级别
- myMessage.Priority = MessagePriority.Highest; //最高消息优先级
- myQueue.Send(myMessage);
- }
- catch(Exception ex)
- {
- }
- finally
- {
- myMessage.Dispose();
- myQueue.Dispose();
- }
- }
- public static void ReveiveMessage()
- {
- //连接到本地队列
- MessageQueue myQueue = new MessageQueue(strServer);
- myQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(Person) });
- Message myMessage = null;
- try
- {
- int count = myQueue.GetAllMessages().Length;
- //从队列中接收消息
- //Peek: 返回队列中第一条消息的副本,而不从队列中移除该消息
- //Receive: 接收队列中的第一条消息,但不将它从队列中移除
- //PeekById: 返回具有指定消息标识符的消息的副本,但不从队列中移除消息
- //ReceiveById: 接收匹配给定标识符的消息,并将其从队列中移除
- myMessage = myQueue.Receive();
- Person p = (Person)myMessage.Body; //获取消息的内容
- Console.WriteLine("Name:" + p.Name);
- Console.WriteLine("Age:" + p.Age.ToString());
- Console.WriteLine("Birthday:" + p.Birthday.ToString("yyyy/MM/dd"));
- count = myQueue.GetAllMessages().Length;
- Console.ReadLine();
- }
- catch
- {
- Console.WriteLine("error4");
- }
- finally
- {
- myMessage.Dispose();
- myQueue.Dispose();
- }
- }
MSMQ的更多相关文章
- MSMQ学习
一.理论准备 MSMQ(MicroSoft Message Queue,微软消息队列)官方的解释是:在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布 ...
- 基于ajax与msmq技术的消息推送功能实现
周末在家捣鼓了一下消息推送的简单例子,其实也没什么技术含量,欢迎大伙拍砖.我设计的这个推送demo是基于ajax长轮询+msmq消息队列来实现的,具体交互过程如下图: 先说说这个ajax长轮询,多长时 ...
- 已经过事务处理的 MSMQ 绑定(转载)
https://msdn.microsoft.com/zh-cn/biztalk/ms751493 本示例演示如何使用消息队列 (MSMQ) 执行已经过事务处理的排队通信. 注意 本主题的末尾介绍了此 ...
- 基于WCF MSMQ 的企业应用解决方案
最近研究了一下基于MSMQ的WCF应用,从书上.网上查了很多资料,但始终没能彻底理解WCF-MSMQ的工作原理,也没能得到一个合理的应用解决方案.索性还是自己做个实验,探索一下吧.经过反复试验,颇有收 ...
- 使用MSMQ 远程队列
------------------------------------------------------------------------------------------------- -- ...
- Redis学习笔记~实现消息队列比MSMQ更方便
什么是队列:简单的说就是数据存储到一个空间里(可以是内存,也可以是物理文件),先存储的数据对象,先被取出来,这与堆栈正好相反,消息队列也是这样,将可能出现高并发的数据进行队列存储,并按着入队的顺序依次 ...
- 详解.Net消息队列(MSMQ)应用
[IT168 技术文档]MSMQ是Windows 2000.Windows XP.Windows Server 2003的一个组件,并将继续包含在Windows Vista和以后的Windows服务器 ...
- 利用Ajax+MSMQ(消息队列)+WebService实现服务器端向客户端的信息推送
需求: 每当数据库有数据更新时,推送到客户端 软需求: 1.服务器资源有限,要求资源占用尽可能小: 2.项目可控,不许调用第三方不可信不稳定的方法. 已有事例: 1.58到家采用的方法是TCP的长连接 ...
- MSMQ消息队列 用法
引言 接下来的三篇文章是讨论有关企业分布式开发的文章,这三篇文章筹划了很长时间,文章的技术并不算新,但是文章中使用到的技术都是经过笔者研究实践后总结的,正所谓站在巨人的肩膀上,笔者并不是巨人,但也希望 ...
随机推荐
- <<< javascript地址栏,代码
不伤及服务器,可以用来测试项目效果 修改网页.不修改服务器端任何网页页面 javascript:document.body.contentEditable='true';document.design ...
- 友盟ionic多渠道自动签名app
这几天公司的运营部门要求添加流量统计功能,集成了友盟的插件,中间遇到很多的问题,在这里说明记录一下,为遇到相同问题的朋友们减少麻烦 问题一.插件的使用直接将友盟sdk系在放置到项目根目录下plugin ...
- Win7---------专区
待完善中-------------------------------------- 1.0Win7来历: 不算上最早的Windows版本从 95 98 2000 ME XP 2003 Vis ...
- EXPLAINING WHAT ACTION AND FUNC ARE
http://simpleprogrammer.com/2010/09/24/explaining-what-action-and-func-are/ Explaining What Action A ...
- [NHibernate]多对多关系(关联查询)
目录 写在前面 文档与系列文章 多对多关系关联查询 总结 写在前面 上篇文章介绍了nhibernate中对一对多关系进行关联查询的几种方式,以及在使用过程需要注意的问题.这篇文章对多对多关系的查询处理 ...
- Two Sum Leetcode Java
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- 字符串匹配:KMP算法
一.原理: KMP算法是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法.朴素算法( ...
- Java高并发同步Volatile的使用
引言: 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”. 可见性的意思 ...
- MySQL5.6 新特性之GTID
背景: MySQL5.6在5.5的基础上增加了一些改进,本文章先对其中一个一个比较大的改进"GTID"进行说明. 概念: GTID即全局事务ID(global transactio ...
- java序列化
什么是java序列化,如何实现java序列化? 我们有时候将一个java对象变成字节流的形式传出去或者从一个字节流中恢复成一个java对象,例如,要将java对象存储到硬盘或者传送给网络上的其他计算机 ...