Задать вопрос
@forttran

Как лучше организовать автоматическое восстановление приложения после сбоя?

Разрабатываю приложение которое скачивает базу с удаленного сервера в мою локальную базу(ms sql).
Предполагаемый объем - около 10 гигов.
Приложение генерирует ссылки, обращается к серверу и забирает данные за один день.
Возникла потребность организовать восстановление после сбоя.
Как лучше организовать подобное? Извиняюсь, если вопрос нубский.
  • Вопрос задан
  • 150 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
@nirvimel
Классический вариант решения:
1. Таблица, где хранятся котировки, имеет индекс по дате/времени.
2. Выгрузка идет отдельными транзакциями в цикле. Между транзакция не сохраняется никакого внутреннего состояния. По окончанию каждой транзакции программа (условно) возвращается в исходное состояние (этим обеспечивается восстановление после сбоев).
3. В самой транзакции сперва делается выборка записи с максимальным значением временной отметки (поиск по индексированному полю - мгновенно).
4. Это значение округляется в меньшую сторону до начала периода (минуты/часа/дня/года).
5. Производится запрос котировок за этот период.
6. Выбранные данные объединяются с содержимым таблицы таким образом, что пересекающиеся записи не дублируются (тут много вариантов решения на sql).
7. Транзакция закрывается.
Все.
Итого: полная гарантия отсутствия дублирующих записей в базе при любом раскладе. Этот скрипт/программу можно запускать вручную/автоматически/по_графику в любое время - ситуация с несколько одновременно работающими копиями не опасна (хоть и бессмысленна).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AlexXYZ
@AlexXYZ
O Keep Clear O
Не подойдёт обычный try/catch с сохранением сбойных запросов в отдельный список, а потом повторного их вызова?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы