消息队列(一)——消息的简单发送与接收
来源:互联网 发布:软件设计师考试报名费 编辑:程序博客网 时间:2024/05/01 00:36
背景
开发者经常遇到需要异步执行操作的情况(即过程不等到操作完成就开始)。消息队列提供一个中心位置或池,您可以在其中放置或从中提取数据,从而满足了这一要求。一个应用程序能够把消息存放在队列中,然后继续自己的业务,另一个应用程序在运行时再提取这些数据。
简单理解
感觉这里的消息队列还是一个典型的“buffer”思想:即就像喝水一样,如果有一杯水,我可能就直接喝掉了;但是如果有一壶水,我可能要先把水倒进杯子,然后再从杯子里喝水。
消息队列在这里起到了个杯子的作用。
代码示例
建立消息队列并发送一条消息
Message msg = null; //对列发送或读取的实际消息或数据 MessageQueue mq = null; //接收/发送消息的MSMQ消息队列 try { msg = new Message(); msg.Priority = MessagePriority.Normal;//普通消息的优先级 if (!MessageQueue.Exists(@".\Private$\TechRepublic")) { mq = MessageQueue.Create(@".\Private$\TechRepublic"); } //如果不存在则创建它 else { mq = new MessageQueue(@".\Private$\TechRepublic"); } msg.Label = "Test Message"; msg.Body = "this is only a test"; mq.Send(msg); Console.WriteLine("message sent"); } catch (System.Messaging.MessageQueueException ex) { Console.WriteLine("MSMQ Error:" + ex.ToString()); } catch (Exception ex) { Console.WriteLine("error:" + ex.ToString()); } finally { mq.Close(); }
接收消息
Message msg = null; MessageQueue mq = null; try { mq = new MessageQueue(@".\Private$\Tepublic"); msg = mq.Receive(new TimeSpan(0, 0, 3));//timespan对象指定异常出现时系统的等待时间。 msg.Formatter = new XmlMessageFormatter(new string[] { "System.String,mscorlib" }); //对象被转换成字符串读取前面存储的文本 mq.Receive(); //从队列中读取消息,它的值显示在控制台中 Console.WriteLine(msg.Label.ToString() + "__" + msg.Body.ToString()); } catch (System.Messaging.MessageQueueException ex) { Console.WriteLine("MSMQ Error"+ex.ToString()); } catch(Exception ex) { Console.WriteLine("Error:"+ex.ToString()); }finally { mq.Close(); }
未完待续,具体问题还没分析~
0 0
- 消息队列(一)——消息的简单发送与接收
- 消息队列的发送与接收.
- 消息队列的发送与接收
- SpringBoot的RabbitMQ消息队列: 一、消息发送接收第一印象
- SpringBoot的RabbitMQ消息队列: 一、消息发送接收第一印象
- spring activeMQ 整合(一): 一个简单的demo,测试消息的发送与接收
- POSIX消息队列 发送接收简单子
- AsyncSocket(简单的实现与服务器的发送消息,接收消息)
- 关于Posix消息队列简单的发送接收消息的练习
- RabbitMQ之最简单的消息的发送与接收
- 超简单的 andirod 消息发送与接收
- Scala:简单使用Actor的消息发送与接收求和
- IPC--消息队列 message queue(消息队列的创建,信息的发送和接收)
- Posix消息队列的基本操作——接收消息
- 消息队列的接收
- 实验五 消息的发送与接收
- 对话框最小化消息 的发送与接收
- 实验五 消息的发送与接收
- 黑马程序员---关于Java中的继承关系例子
- mysql---为测试数据库填充大量数据
- Struts2中使用校验文件对表单的校验以及常用的校验
- 分布式数据分析挖掘系统
- sgu-240 Runaway
- 消息队列(一)——消息的简单发送与接收
- 职场
- Oracle PL/SQL常用47个工具包
- Python List
- Spring-----9、容器中bean的生命周期
- 浩易南:淘宝越来越不适合普通创业者了
- 【Android】Uri、UriMatcher、ContentUris详解
- [转载]XSS危害——session劫持
- stray'\241'in program