如何暂停Web API?它甚至可能吗?

时间:2018-04-30 21:28:58

标签: sql entity-framework-6 asp.net-web-api2

我们面临着奇怪的问题。 我们有两个部分 1. Windows任务更新数据库 2. Web API使用相同的数据库提供搜索结果

我们希望在Windows任务更新数据库时暂停API。因此搜索结果不会是部分或不正确的。 是否可以在更新数据库时暂停API请求?数据库更新大约需要10-15秒。

2 个答案:

答案 0 :(得分:1)

当您说“暂停”时,您对呼叫者的期望是什么?您似乎选择向他们提供错误而不是不完整的数据。

如果可能,您的数据库更新应该包含在事务中,以便消费者获得当前的完整数据,直到提交事务为止。然后,下一个呼叫将更新并完成数据。

我希望事务处理也可以帮助您从更新中的错误中恢复。如果某些内容在更新过程中失败,会发生什么?

这篇文章可以帮助您:How to Decide to use Database Transactions

答案 1 :(得分:0)

如果API知道此任务何时开始,您可以通过调用让线程休眠10秒钟:

System.Threading.Thread.Sleep(10000)
相关问题