Petapoco 无需等待即可执行存储过程

Nun*_*iro 1 c# sql-server stored-procedures petapoco

我在 C# WepApi 上使用 PetaPoco,我必须执行一个存储过程来删除许多表上的行。删除它的行数是可变的(可以是几个或太多),因此,有时 PetaPoco 会抛出超时异常。使用 PetaPoco 是否有可能“调用”存储过程并在过程完成之前关闭连接。存储过程不返回任何值,WebApi 不需要知道它何时结束......

Edu*_*eni 5

您需要的是触发后台任务并从 WebApi 请求返回。运行后台任务有几个选项,不要忘记使用以下方法更改请求超时:

HttpContext.Server.ScriptTimeout = 50 * 60; // 50 minutes
Run Code Online (Sandbox Code Playgroud)

和 PetaPoco 命令超时使用:

var db = new Database(connectionStringName);
db.OneTimeCommandTimeout = 50;
db.Execute( ... );
Run Code Online (Sandbox Code Playgroud)