【发布时间】:2011-08-16 17:24:59
【问题描述】:
在我们应用程序的一部分中,我们必须保存一些数据。数据的保存需要一些时间,可能从几秒到几分钟不等。为了处理这个问题,我们有以下流程,所以没有 sql 超时。
注意:这一切都是我们的 DBA 设置的,这个过程已经使用了几年没有任何问题。
1:调用将作业放置在表中的存储过程。这个存储过程返回给我一个jobid。该 sp 的输入参数是一个 exec 语句,用于执行另一个带参数的存储过程。
2: 然后我调用另一个存储过程传递作业 ID,它将返回作业的状态,例如完成(真)否则为假+错误消息。
3:我在第 2 步中循环最多 5 次,睡眠时间为 2 秒。如果返回的状态已完成或出现错误,我会跳出循环。在 5 次之后仍然处于未完成状态,我只是显示消息它花费的时间太长,请稍后访问该页面(这不是一个好主意,但到目前为止,该过程已经完成了大约 2-3 次循环并且没有达到最多 5 次,但有机会)。
现在我想知道是否有更好的方法来完成上述工作,甚至在几年后的今天,这是我最好的选择吗?
注意:使用 ASP.NET 2.0 Webforms / ADO.NET
【问题讨论】:
标签: asp.net sql-server ado.net