Как приостановить веб-API? Это вообще возможно? - PullRequest
0 голосов
/ 01 мая 2018

Мы столкнулись со странной проблемой. У нас есть две части 1. Задача Windows обновить базу данных 2. Веб-API, использующий ту же базу данных для предоставления результатов поиска

Мы хотим приостановить API, пока задача Windows обновляет базу данных. Таким образом, результаты поиска не будут частичными или неправильными. Можно ли приостановить запрос API во время обновления базы данных? Обновление базы занимает около 10-15 секунд.

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Когда вы говорите «пауза», что вы ожидаете от звонящих? Похоже, вы предпочитаете давать им ошибки, а не неполные данные.

Если возможно, обновления вашей базы данных должны быть заключены в транзакцию, чтобы потребители получали текущие, полные данные, пока транзакция не будет зафиксирована. Затем при следующем вызове будут обновлены и дополнены данные.

Я надеюсь, что обработка транзакций также поможет вам восстановиться после ошибок в ваших обновлениях. Что произойдет, если что-то не получится в процессе обновления?

Этот пост может помочь вам: Как принять решение об использовании транзакций базы данных

0 голосов
/ 01 мая 2018

Если API знает, когда запускается эта задача, вы можете оставить поток в спящем режиме на 10 секунд, вызвав:

System.Threading.Thread.Sleep(10000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...