需要建议开发队列作业以在两个应用程序之间进行交互

时间:2013-10-09 01:00:16

标签: asp.net queue

目前我的服务器中有一个Web应用程序和一个wins form应用程序。基本上,Web应用程序将收到用户的请求,此请求将发送到wins表单应用程序以继续(获胜表单需要大约1分钟才能完成请求)。

假设2个用户通过Web应用程序同时发送请求,我需要开发一个队列作业来按顺序维护请求。

1)用户A发出请求>请求将存储到队列作业

2)用户B发出请求>请求将存储到队列作业

3)队列作业将第一个请求发送到wins表单。第一个请求完成后,第二个请求将跟随

所以我的问题是,这个队列作业应该在Web应用程序内部开发吗?或者它应该以独立的形式发展?

在ASP.NET中创建队列作业的任何示例代码?

或者任何人都可以建议更好的解决方案?

3 个答案:

答案 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处理跨域队列通信。