我们面临着奇怪的问题。我们有两个部分1.Windows任务更新数据库2. Web API使用相同的数据库提供搜索结果
我们希望在Windows任务更新数据库时暂停API。因此搜索结果不会是部分或不正确的。是否可以在更新数据库时暂停API请求?数据库更新大约需要10-15秒。
当你说“暂停”时,你对呼叫者的期望是什么?看起来你选择给他们错误而不是不完整的数据。
如果可能,您的数据库更新应该包含在事务中,以便使用者获得当前的完整数据,直到提交事务为止。然后,下一个呼叫将具有更新和完整的数据。
我希望事务处理也可以帮助您从更新中的错误中恢复。如果某些内容在更新过程中失败,会发生什么?
如果API知道此任务何时开始,您可以通过调用以下命令让线程休眠10秒:
System.Threading.Thread.Sleep(10000)