繁体   English   中英

在ASP.net Web API 2服务中处理长时间运行的进程

[英]Handling Long-Running Processes in an ASP.net Web API 2 Service

我使用ASP.net Web API 2创建了一个REST服务。该服务允许客户端对存储在SQL Server数据库中的记录进行POST。 此时, 其他一些过程需要从数据库中提取记录,进行处理,然后将结果发送到另一个单独的REST服务。

由于记录的处理将很耗时,因此我不想在POST操作中执行此步骤,但是我试图找出设计此其他过程的最佳方法。

有没有办法将此功能集成到ASP.net REST API项目中,还是像Windows Service这样的最佳解决方案?

您可以异步编写Web服务。 以便,

public async Task<HttpResponseMessage> PostRecords(Records records)
{
    await [POST data to db]

    // process records asynchronously without awaiting

}

您还可以同步执行发布操作,同时跟踪数据库中发布的完成情况。 正如您提到的,让工作或Windows服务单独处理完成的帖子。

您可以在asp.net mvc或Web API中使用Quartz.NET调度库。 定义一个执行查询的作业,并从发布操作中触发该作业。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM