是否可以立即向客户端发送响应(200)并在响应发送给客户端后处理请求?
示例:如果我向需要 2 分钟响应的页面发送请求。我不想等待 2 分钟才能得到响应(因为我不需要服务器的任何响应)所以我希望服务器立即响应。我不担心该过程是否会在响应发送后完成。
任何人都有实施此过程的想法?
谢谢你。
是否可以立即向客户端发送响应(200)并在响应发送给客户端后处理请求?
示例:如果我向需要 2 分钟响应的页面发送请求。我不想等待 2 分钟才能得到响应(因为我不需要服务器的任何响应)所以我希望服务器立即响应。我不担心该过程是否会在响应发送后完成。
任何人都有实施此过程的想法?
谢谢你。
听起来您为网络编写的服务应该使用离线过程。Web 通信同步工作,因此您不希望客户端在服务器忙于处理他们的请求时闲逛。我建议在您的 Web 服务器上运行一个单独的服务,您可以将进程卸载到该服务。也许是这样的:
您可以调用Async
Web 服务方法的方法。它不会等待响应。
for (int i = 0; i < 100; i++)
{
client.HelloWorldAsync();
}
我们在我们的项目中做类似的事情。
基本思想就像Sean Kornish
建议:服务器接受客户端数据并将响应发送给客户端,同时安排处理本身。
这是示例console client
/ wcf service
:
客户端
class Program
{
static void Main(string[] args)
{
var client = new Service1Client();
for (int i = 0; i < 10000; i++)
{
string response = client.GetData(42);
Console.WriteLine("Response: '" + response + "'");
}
Console.ReadLine();
}
}
服务
public class Service1 : IService1
{
private static int _serviceState = 1;
public string GetData(int value)
{
new Task(DoHeavyLoadWork).Start();
return string.Format("The server state is {0}", _serviceState);
}
}
请注意,代码只是一个示例,因此非常脏。但给出一些提示,我希望。