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