c# - 在后台/异步任务中插入数据最好的方法是什么?

标签 c# asp.net-mvc asp.net-mvc-3 entity-framework asynchronous

我有一个非常快速/轻量级的 mvc 操作,经常被请求,我需要在重负载下保持最短的响应时间。

我需要做的是根据条件不时向 sql server 插入少量数据(记录唯一 id 用于统计,大约 1-5% 的查询)。

我不需要插入数据来响应,如果我因为应用程序重启或其他原因丢失了一些数据,我会活下来。

我想我可以以某种方式对插入进行排队并在后台进行,甚至可以进行某种缓冲 - 比如等到队列收集到 100 个插入,然后一次完成。

我很确定,之前一定有人做过/看过这样的实现,没有必要重新发明轮子,所以如果有人能指出正确的方向,我将不胜感激。

最佳答案

您可以从 Controller 操作中触发一个后台任务来执行插入(即发即弃):

public ActionResult Insert(SomeViewModel model)
{
    Task.Factory.StartNew(() =>
    {
        // do the inserts
    });
    return View();
}

请注意,IIS 可以随时回收应用程序,这会终止任何正在运行的任务。

关于c# - 在后台/异步任务中插入数据最好的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7790523/

相关文章:

c# - 将 ComboBox 插入动态表

c# - 在 Lambda 表达式的 for 循环中获取当前索引

asp.net - 使用 Asp.Net Identity 2 在 AspNetUserClaims 中存储用户信息有什么好处吗?

css - MVC3 CSS 文本框样式

c# - MVC3 - 组 Html 帮助器扩展

c# - 在构造函数或析构函数中调用的虚函数的行为

c# - 检查给定字符串是否是用于转换 DateTime 的有效格式字符串

c# - System.Web.Mvc.HttpPostAttribute 与 System.Web.Http.HttpPostAttribute?

asp.net-mvc - 不应加载引用程序集来执行

ASP.NET MVC3 : Connected clients count