消息队列 简单demo
可以使用Windows自带计划任务执行Receive操作。
控制面板=>管理工具 计划任务 =>创建计划任务 step : http://www.2cto.com/kf/201402/277337.html using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Linq;
using System.Messaging;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace ConsoleApplication26
{
class Program
{
private static int PostCoount { get; set; }
private static MessageQueue _queue; private static readonly string _queuePath = ".\\private$\\MSMQDemo";
private static MessageQueue Queue
{
get
{
if (_queue == null)
{
_queue = new MessageQueue(_queuePath)
{
Formatter = new XmlMessageFormatter(new Type[] { typeof(User) })
}; Debug.WriteLine("Connect To " + _queuePath + " Done!");
} return _queue;
}
}
static void Main(string[] args)
{ //Thread[] threads = new Thread[200];
//for (int i = 0; i < 200; i++)
//{ // ParameterizedThreadStart threadStart = new ParameterizedThreadStart(Send);
// Thread thread = new Thread(threadStart) { IsBackground = true };
// threads[i] = thread; // User user = new User() { ID = 1, Phone = "15689", Name = "张三" };
// thread.Start(user);
//} User u = new User();
u.Name = "ls";
u.Phone = ""; Send(u); //ThreadStart ttStart = new ThreadStart(Receive);
//Thread t = new Thread(ttStart);
//t.IsBackground = true;
//t.Start(); /*挂起Supend()*/
//for (int i = 0; i < PostCoount; i++)
//{
//while (true)
//{
// Receive();
//} //}
/*恢复*/ Console.WriteLine("完成"); Console.ReadLine(); } public static int Add(User user)
{
string sql = @"
insert into [User] values ('" + user.Phone + "','" + user.Name + "') "; string conStr = "data source=192.168.1.10;initial catalog=xiaocainiao;user id=guakao;password=wrx.362114";
int i = ; using (SqlConnection connect = new SqlConnection(conStr))
{
connect.Open();
SqlCommand cmd = new SqlCommand(sql, connect);
cmd.ExecuteNonQuery();
i++;
} return i;
} /// <summary>
/// Send
/// </summary>
private static void Send(object user)
{ for (var i = ; i <= ; i++)
{
//var message = new Message();
System.Messaging.Message message = new System.Messaging.Message();
message.Body = (User)user;
message.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(User) });
Queue.Send(message); }
} /// <summary>
/// Receive
/// </summary>
private static void Receive()
{
//MessageQueue myQueue = new MessageQueue(".\\private$\\MSMQDemo");
//myQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(User) }); //从队列中接收消息
Message myMessage = Queue.Receive();
myMessage.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(User) });
User context = myMessage.Body as User; //获取消息的内容
Add(context); }
}
}
消息队列 简单demo的更多相关文章
- Linux 进程间通信(posix消息队列 简单)实例
Linux 进程间通信(posix消息队列 简单)实例 详情见: http://www.linuxidc.com/Linux/2011-10/44828.htm 编译: gcc -o consumer ...
- redis消息队列简单应用
消息队列出现的原因 随着互联网的高速发展,门户网站.视频直播.电商领域等web应用中,高并发.大数据已经成为基本的标识.淘宝双11.京东618.各种抢购.秒杀活动.以及12306的春运抢票等,他们这些 ...
- 使用java实现阿里云消息队列简单封装
一.前言 最近公司有使用阿里云消息队列的需求,为了更加方便使用,本人用了几天时间将消息队列封装成api调用方式以方便内部系统的调用,现在已经完成,特此记录其中过程和使用到的相关技术,与君共勉. 现在阿 ...
- C# Queue与RabbitMQ的爱恨情仇(文末附源码):Q与MQ消息队列简单应用(二)
上一章我们讲了队列( Queue),这一章我们讲Message Queue消息队列,简称MQ. 定义: MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开 ...
- node事件循环和消息队列简单分析
node的好处毋庸置疑,事件驱动,异步非阻塞I/O,以及处理高并发的能力深入人心,因此大家喜欢用node做一些小型后台服务或者作为中间层和其他服务配合完成一些大型应用场景. 什么是异步? 异步和同步应 ...
- 【转】MSMQ 微软消息队列 简单 示例
MSMQ它的实现原理是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为Message),然后把它保存至一个系统公用空间的消息队列(Message Queue)中:本地或者是异地的消息接收程 ...
- Redis 应用只 消息队列 简单实现(生产者 消费者模式)
运行效果:
- System V IPC 之消息队列
消息队列和共享内存.信号量一样,同属 System V IPC 通信机制.消息队列是一系列连续排列的消息,保存在内核中,通过消息队列的引用标识符来访问.使用消息队列的好处是对每个消息指定了特定消息类型 ...
- rabbitMQ消息队列原理
MQ:Message Queue,消息队列,是一种应用程序对应用程序的通信方法:应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们. 1 rabbitMQ入 ...
随机推荐
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 7 Regularization 正则化
Lecture7 Regularization 正则化 7.1 过拟合问题 The Problem of Overfitting7.2 代价函数 Cost Function7.3 正则化线性回归 R ...
- Dubbo简单介绍及其和zookeeper的关系
何为Dubbo Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维 ...
- 哪些 IT 职位难以替代,竞争力强?
原文出自知乎:http://www.zhihu.com/question/24795311 有10多年的软件行业经验,只针对软件行业来回答这个问题: 很少有无法替代的职位,只能说替代的成本高低而已. ...
- qt数据库有效插件为空的情况
打了一周的环境,从ubuntu到win7,搭建环境的时间比写代码的时间都多.先简单的介绍一下我搭建的环境不是纯QT环境,是一个芬兰的软件开发商开发出来的SDK里面完全融合qt,其中qt是以单独的目录存 ...
- 1-在eclipse里面配置python(最详细)
最近有时间打算学下python,打算学当然是得先搞好开发工具,网上搜一波,发现许多ide,居然可以在eclipse下写python,由于最近一直在搞java,所以已经装了eclipse,所以打算就在e ...
- Linux Valgrind命令
一.简介 C/C++程序,最常见的错误之一就是内存泄露.Valgrind 是一款 Linux下的内存调试工具,它可以对编译后的二进制程序进行内存使用监测找出内存泄漏问题. Valgrind通常包括如下 ...
- WEB前端--JavaScript
JavaScript JavaScript基础 一.JavaScript简介 JavaScript是一种嵌入到HTML文件中的描述性语言,由浏览器的解释器将其动态地处理成可执行的代码,能独立地完成与客 ...
- Win10 linux子系统Ubuntu下显示图形界面
转载 https://jingyan.baidu.com/article/ed2a5d1f98577809f6be17a3.html 打开终端界面,在这个窗口测试一下ls命令,无误. # 更新 sud ...
- c++虚析构函数的使用及其注意点
// ConsoleApplication33.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream& ...
- css溢出文本显示省略号
css div { width: 200px; height: 200px; border: 1px solid; /* 以下四条缺一不可 其中 display:block 为隐藏条件 */ disp ...