Как архитектурно решить проблему нескольких источников стран-городов-индексов? Имеется источник городов и доступных почтовых индексов в них
Но прямого доступа вида "скачать все" у источника нету - есть только возможность отправить запрос из "более чем двух символов", чтобы по индексу или части названия города + коду страны в системе вытащить результаты, скажем тысячу штук
Список городов также зависит от страны, а стран вообще около 400 штук (и в каждой по сотне другой городов, и для каждого города пара тысяч индексов)
Список может меняться, поскольку геополитическая обстановка нынче нестабильная, один город пропал, появился новый, страны меняются, в конце концов сервис просто может перестать обслуживать определенные города или индексы в них.
Частота, с которой данные меняются неизвестна, по сообщениям техподдержки - это непредсказуемо - когда раз в неделю, когда раз в три месяца, когда каждый день.
Имеет ли смысл какое-нибудь решение по кешированию или лучше все оставить вида:
- вводишь две буквы города
- аякс запрос на скрипт по keyup
- скрипт обычным запросом выдрал данные с удаленного сервака
- данные отобразились
Минус только в том, что запрос на аякс занимает ну четверть секунды, потом запрос на удаленный сервак, плюс его обработка еще полсекунды - в общем и целом секунду на постоянный дроч запросами удаленного сервака, даже учитывая, что можно сбить спесь пользователя установкой таймаутов и отображением анимации типа "подождите, идет запрос".
То есть я думаю над тем, чтобы ежедневно делать накопительный кэш из запрошенных городов, чтобы экономить запрос, или я таким образом кроме геморроя ничего себе не наэкономлю?
Вот еще сюрприз - что завтра подключается другой такой же сервис, у которого своя собственная база городов и индексов, и коды (или даже названия) городов могут отличаться наличием затупов, верхних апострофов, дефисов, пробелов и тд - допустим даже общий код, тем не менее связка из кучи источников да на кэш помножить - голова уже вскипает.
Какой лучший способ разрулить? Кешировать результаты запросов в общую таблицу, и вешать кэш например на сутки? А как наполнять такую базу? Или самое лучшее решение это оставить все как есть - пусть себе аякситься?

21 Авг 2019 в 06:29
244 +1
0
Ответы
1

Для решения проблемы с несколькими источниками данных о городах и индексах можно использовать следующий подход:

Кэширование данных: создать накопительный кэш, куда будут сохраняться результаты запросов к удаленному серверу. Кэш можно обновлять ежедневно или по мере обновления данных на удаленном сервере. Это позволит экономить время на запросы и уменьшить нагрузку на сервер.

Объединение данных: если подключается еще один сервис с данными о городах и индексах, можно объединить данные из обоих источников в одну общую таблицу. Это позволит унифицировать данные и упростить их обработку.

Синхронизация данных: для автоматической синхронизации данных с удаленными серверами можно использовать специальные скрипты или сервисы. Например, можно написать скрипт, который будет периодически обновлять данные в кэше на основе данных с удаленных серверов.

Обработка данных: перед сохранением данных в кэш их можно стандартизировать, убрав лишние символы или приведя к общему формату. Это позволит избежать проблем с различными форматами данных от разных источников.

Планирование обновлений: в зависимости от частоты изменения данных на удаленных серверах, можно планировать обновление кэша ежедневно, каждую неделю или по другому графику. Это позволит поддерживать актуальность данных в кэше.

Таким образом, комбинирование кэширования данных, их обновление, объединение из разных источников и обработка поможет улучшить производительность и надежность системы работы с данными о городах и индексах.

20 Апр в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир