如何暂停 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
我们遇到了奇怪的问题。 我们有两个部分 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