我有一个客户端应用程序将数据擦除到原始表中。此客户端应用程序对存储过程进行异步调用,该存储过程实际将原始数据解析为表。该处理由存储过程处理。该存储过程可能需要长达半个小时才能运行。我们希望调用存储过程的客户端应用程序退出并完全停止运行。一旦我们终止调用存储过程的客户端应用程序,存储过程就会退出执行。
实现这一目标的最佳方法是什么?我不想在服务器上运行作业。我希望客户端应用程序触发此处理。数据库触发器(我的第一个想法)没有解决问题,因为在触发器调用的存储过程完成之前它不会认为插入完成。
这是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);
}