[英]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.