0

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

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

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

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

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

所以我的问题是,这个队列作业应该在 Web 应用程序中开发吗?还是应该以独立获胜的形式发展?

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

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

4

3 回答 3

0

例如,您可以使用 MSMQ 处理跨域队列通信。

于 2013-10-09T07:13:49.610 回答
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。您还需要DoWork每 x 分钟调用一次方法,或者让它监听Process_Request触发。

于 2013-10-09T03:01:07.233 回答
0

或者您可以使用 MSMQ 并这样做。ASP.NET 站点向队列发送消息,winforms 应用程序(或服务)绑定到队列,因此当消息进入队列时,它将拾取、处理并让它完成,直到没有更多消息进入队列。

于 2013-10-09T03:10:10.700 回答