目前我的服务器中有一个Web应用程序和一个wins form应用程序。基本上,Web应用程序将收到用户的请求,此请求将发送到wins表单应用程序以继续(获胜表单需要大约1分钟才能完成请求)。
假设2个用户通过Web应用程序同时发送请求,我需要开发一个队列作业来按顺序维护请求。
1)用户A发出请求>请求将存储到队列作业
2)用户B发出请求>请求将存储到队列作业
3)队列作业将第一个请求发送到wins表单。第一个请求完成后,第二个请求将跟随
所以我的问题是,这个队列作业应该在Web应用程序内部开发吗?或者它应该以独立的形式发展?
在ASP.NET中创建队列作业的任何示例代码?
或者任何人都可以建议更好的解决方案?
答案 0 :(得分:0)
using System.Collections.Generic;
Queue<task> Q = new Queue<task>();
public void Proccess_Request(string info)
{
task t = new task();
t.INFO = info;
Q.Enqueue(task);
}
public void DoWork()
{
//
while (Q.Count > 0)
{
task t = Q.Dequeue();
//Process task t
}
}
public class task
{
public string INFO { get; set; }
// Whatever task properties you need
}
您需要构建接受表单数据的服务并将其传递给方法Process_Request
。您还需要每隔x分钟调用一次方法DoWork
,或者让它听取Process_Request
来解雇。
答案 1 :(得分:0)
或者您可以使用MSMQ并以此方式执行。 ASP.NET站点向队列发送消息,winforms应用程序(或服务)绑定到队列,因此当消息进入队列时,它将接收它,处理它并让它完成直到不再有消息队列。
答案 2 :(得分:0)
例如,您可以使用MSMQ处理跨域队列通信。