高分求一个异步处理大量请求的方法或思路。

qingqingdewenba 2007-07-02 02:20:02
现在有个项目,需要处理很多提交,但都不需要回应,只需将收到的数据做一些处理后提交到数据库。一个提交会设计很多表的修改,如果并发量太大,怕系统处理不了。现在想做一个后台线程,专门来处理临时表中的数据,如果没有数据了就将自己休眠,新的请求到来后被唤醒。这样循环下去,就避免了一次处理太多的数据,现在成了一次做一个处理,大大减轻了数据库的负担,也降低了出错的可能性。但是我才学.NET,不知道该怎么设计这样的后台线程,请高手给点线索。如果有更好的思路也请不吝赐教。
...全文
163 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunchaohuang 2007-07-02
  • 打赏
  • 举报
回复
将数据压入到队列中
  • 打赏
  • 举报
回复
再加上一个方法:

public static void Start();
{
//什么也不用做
}


在你的主程序启动时只要访问一下这个“Start”,就可以。


如果你的程序用于asp.net,要知道跟c/s有很大不同。
  • 打赏
  • 举报
回复
随便写几条,你看懂思路就好:

public static class ABC
{
static ABC()
{
System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(Proc));
}

private static void Proc(object obj)
{
//读取数据库,处理一个任务。
System.Threading.Thread.Sleep(5000);
}
}
TiidaLee 2007-07-02
  • 打赏
  • 举报
回复
同意楼上的观点。
asp.net接收到处理请求后,讲需要处理的信息放入队列(微软的 MQ)。在服务器端开发一个.NET控制台应用程序,使用多个线程来不间断的提取队列中的数据并进行处理。具体实现方法你可以参照微软的PetShop 4中的订单处理。
wzd24 2007-07-02
  • 打赏
  • 举报
回复
将数据压入到队列中,然后工作者线程从队列中取出数处理!

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧