彻底解雇存储过程C#.NET Core

时间:2018-09-17 14:39:55

标签: c# sql-server linq tsql asp.net-core

我有一个T-SQL存储过程,该过程每月运行一次,大约需要48个小时才能完成。我在客户端应用程序上单击一个按钮,以在C#.NET Core API上调用路由。然后,API调用存储过程。我不希望它以任何形式或方式等待。我在函数周围添加了Task.Run()

Task.Run(() => db.Database.ExecuteSqlCommand("dbo.storedProcedure"));

这将成功按需立即将响应返回给客户端,但是,API仍在后台等待此过程。

有没有一种方法可以调用该过程并使API完全完成?我只是想开始它,让它纯粹在数据库上运行。对于这种情况,我不关心捕获错误或其他可能被视为良好做法的操作。

1 个答案:

答案 0 :(得分:4)

也许可以在SQL Agent(没有关联的计划)中创建一个执行存储过程的作业,然后从客户端应用程序启动该作业。可能需要不同的特权,但会使您的应用程序与该过程的运行断开连接,这听起来像是您要实现的目标。