Asynchronous Stored Proc无需等待完成

时间:2009-12-01 20:08:27

标签: stored-procedures asynchronous

我有一个客户端应用程序将数据擦除到原始表中。此客户端应用程序对存储过程进行异步调用,该存储过程实际将原始数据解析为表。该处理由存储过程处理。该存储过程可能需要长达半个小时才能运行。我们希望调用存储过程的客户端应用程序退出并完全停止运行。一旦我们终止调用存储过程的客户端应用程序,存储过程就会退出执行。

实现这一目标的最佳方法是什么?我不想在服务器上运行作业。我希望客户端应用程序触发此处理。数据库触发器(我的第一个想法)没有解决问题,因为在触发器调用的存储过程完成之前它不会认为插入完成。

这是Async方法。我正在使用LINQ。我能以某种方式修改它吗?或者我是否需要一个新设计?

partial class MetaDataContext
{

    delegate int Process_CompleteCycle2Delegate(int? frequencyID, int? cycleID);

    public void Process_CompleteCycle2Async(int? frequencyID, int? cycleID)
    {
        Process_CompleteCycle2Delegate completeCycleDelegate = new Process_CompleteCycle2Delegate(this.Process_CompleteCycle2);
        IAsyncResult async = completeCycleDelegate.BeginInvoke(frequencyID, cycleID, null, null);

}

1 个答案:

答案 0 :(得分:4)

请参阅Asynchronous procedure execution以获得可靠且事务一致的方式。