如何暂停 Web API ?有可能吗?

How to pause Web API ? Is it even possible?

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

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

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

System.Threading.Thread.Sleep(10000)

当您说 "pause" 时,您希望来电者会发生什么情况?看起来你选择给他们错误而不是不完整的数据。

如果可能,您的数据库更新应该包含在一个事务中,以便消费者在提交事务之前获得最新的、完整的数据。然后,下一次调用将有更新和完整的数据。

我希望事务处理也能帮助您从更新错误中恢复。如果更新中途出现问题,现在会发生什么?

这篇post可能对您有帮助:How to Decide to use Database Transactions