做过工作流中消息服务的高手请进 偶正在做一个工作流的项目,需要设计并开发其中的消息服务部分,也就是要做出一个比较完善的消息服务的接口。但是因为没有经验,感觉比较困难,至今也没有什么头绪,希望有这方面经验的各位高手能稍微指点一下,不胜感激! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看一些关于消息队列的文章,或许对你有所帮助。Good Luck! 首先谢谢各位的热心询问。概括的来说,是需要设计一个消息头,用于存放消息的连接线索;一个消息包,用于存放数据信息。创建消息的人和接收消息的人可以是异构的,最后将消息推送出去(要用到push技术)。消息产生的时机可能是有新任务待处理的时候(提醒)、任务快到期的时候(催办)、工作超时的时候(提醒)等等。消息的信道可能有很多种,比如邮件、客户端任务提醒软件、短信通知等。我是如实转述了Leader的要求,可能也有理解不准确的地方。我手里有一个java的消息服务源码,应该实现的功能就能满足我的要求了。可是那里面用到的一些函数都是java特有的,用C#能否实现还是未知! 高难度,以前朋友做过java的,说是用到windows的消息队列。关注。 技术交流群号:23266021欢迎大家在此讨论关于.net的各种技术。1号群 MSMQ不知道能用否。以前的MIS系统客户也提出过要求。但就是最了给最简单的。没做全做好。关注学习拉。 去工作流的官方网站看看http://wf.netfx3.com/ 每次Application_Start的时候,系统都会分一个线程给用户。我们就可以用这个线程,来专门处理一些东西,比如消息提示。在global文件中:protected void Application_Start(Object sender, EventArgs e){ atoa.SubModule.Schedule.ScheduleService.statrSchedule();}在atoa.SubModule.Schedule.ScheduleService中:public static Thread oThread; protected Database data; private ScheduleService() { // // TODO: 在此处添加构造函数逻辑 // if(oThread!=null) oThread.Abort(); oThread = new Thread(new ThreadStart(CheckStatus)); oThread.Name=System.Guid.NewGuid().ToString(); oThread.Start(); atoa.Components.Error.Log(this,"ScheduleService Start"); } public static ScheduleService getInstance(){ if(inst==null) inst=new ScheduleService(); return inst; } public static void statrSchedule(){ getInstance(); } public void CheckStatus(){ while(true){ try { procAwakeMail(); } catch(Exception ex) { }procAwakeMail();{ //在这个函数里检查是否有过期未读的邮件 SqlDataAdapter sda=data.getAdapter("select * from tabMailList where readBefor<'"+time+"' and lastRemindDate<>'"+time+"' and mailfoldertype=1"); DataTable table=new DataTable(); sda.Fill(table); SMS sms=new SMS(); if(table.Rows.Count>0) { foreach(DataRow row in table.Rows) { sms.SendMsg("System",row["mailreceiver"].ToString(),"有邮件["+row["MailSubject"]+"]到期未读",1,System.DateTime.Now,"",0,0); row["lastRemindDate"]=time; } }} 关于按钮的设计思路 字符串切割问题 求教怎么用线程池实现传递参数并控制线程数目?谢谢了 如何调用文件的属性对话框 请问哪些类用的时候不需要实例化 c# web程序中imagebutton按钮怎么实现返回上一页的功能 请教:文件上传的问题 命名空间的问题,望高手不吝赐教!在线等待,高分求教... 关于dataAdapter与Table之间的对应关系!! 腾讯企业邮箱 SMTP发送超时。。。 求解决方案 T_T 折腾好久了 如何 打开 c#例子?? 初学者 Adobe COM组件,AxAcroPDFLib.AxAcroPDF我没用过,请用过的教我一下。
概括的来说,是需要设计一个消息头,用于存放消息的连接线索;一个消息包,用于存放数据信息。创建消息的人和接收消息的人可以是异构的,最后将消息推送出去(要用到push技术)。消息产生的时机可能是有新任务待处理的时候(提醒)、任务快到期的时候(催办)、工作超时的时候(提醒)等等。消息的信道可能有很多种,比如邮件、客户端任务提醒软件、短信通知等。
我是如实转述了Leader的要求,可能也有理解不准确的地方。
我手里有一个java的消息服务源码,应该实现的功能就能满足我的要求了。可是那里面用到的一些函数都是java特有的,用C#能否实现还是未知!
欢迎大家在此讨论关于.net的各种技术。1号群
http://wf.netfx3.com/
我们就可以用这个线程,来专门处理一些东西,比如消息提示。
在global文件中:
protected void Application_Start(Object sender, EventArgs e)
{
atoa.SubModule.Schedule.ScheduleService.statrSchedule();
}
在atoa.SubModule.Schedule.ScheduleService中:
public static Thread oThread;
protected Database data;
private ScheduleService()
{
//
// TODO: 在此处添加构造函数逻辑
//
if(oThread!=null) oThread.Abort();
oThread = new Thread(new ThreadStart(CheckStatus));
oThread.Name=System.Guid.NewGuid().ToString();
oThread.Start();
atoa.Components.Error.Log(this,"ScheduleService Start");
}
public static ScheduleService getInstance(){
if(inst==null) inst=new ScheduleService();
return inst;
}
public static void statrSchedule(){
getInstance();
}
public void CheckStatus(){
while(true){
try
{
procAwakeMail();
}
catch(Exception ex)
{
}procAwakeMail();
{
//在这个函数里检查是否有过期未读的邮件
SqlDataAdapter sda=data.getAdapter("select * from tabMailList where readBefor<'"+time+"' and lastRemindDate<>'"+time+"' and mailfoldertype=1");
DataTable table=new DataTable();
sda.Fill(table);
SMS sms=new SMS();
if(table.Rows.Count>0)
{
foreach(DataRow row in table.Rows)
{
sms.SendMsg("System",row["mailreceiver"].ToString(),"有邮件["+row["MailSubject"]+"]到期未读",1,System.DateTime.Now,"",0,0);
row["lastRemindDate"]=time;
}
}
}