我使用ASP.net Web API 2创建了一个REST服务。该服务允许客户端POST记录存储在SQL Server数据库中的记录。此时其他一些进程需要从数据库中提取记录,处理它们,并将结果发送到另一个单独的REST服务。
由于处理记录非常耗时,我不想在POST操作中执行此步骤,但我正在尝试找出设计此其他进程的最佳方法
有没有办法将此功能集成到ASP.net REST API项目中,还是像Windows服务这样的最佳解决方案?
答案 0 :(得分:0)
您可以异步编写Web服务。那就是,
public async Task<HttpResponseMessage> PostRecords(Records records)
{
await [POST data to db]
// process records asynchronously without awaiting
}
您还可以同步执行后期操作,同时跟踪数据库中帖子的完成情况。正如您所提到的,让工作或Windows服务单独处理已完成的帖子。
答案 1 :(得分:0)
您可以在asp.net mvc或Web api中使用Quartz.NET调度库。定义一个执行查询的作业,并从发布操作中触发该作业。