Как найти грамотный способ реализации парсера курсов валют?
Добрый день, имеется новостной сайт на wordpress, на нем есть обычный парсер (на php) который берет курсы валют с сайта нацбанка, получается каждый пользователь при заходе на сайт подключается к нацбанку и получает курсы.
Сейчас посещаемость сайта пошла вверх, доходила до 10 000 человек в день, и я заметил что сайт начал притормаживать и т.п. Вот пришло время оптимизировать код.
Собственно в чем вопрос, как грамотнее реализовать на сайте именно функцию парсинга курсов валют.
1. Оставить как есть, пусть каждый пользователь при переходах по страничкам подключается к нацбанку - множество запросто к сайту нацбанка.
2. Раз в час пусть сайт сам подключается к нацбанку, забирает курсы валют и хранит у себя в БД, а пользователи уже получают курс из БД нашего сайта.
И первый, и второй способ вроде как не очень, т.к. во втором случае получаем лишние запросы к БД.
Может быть, подскажете альтернативное что-то? Нужно грамотное решение с точки зрения оптимизации сайта, уменьшения нагрузки.
Не совсем понимаю как может быть несколько решений данного вопроса? 1 раз в день, по планировщику (cron/php/как хотите), после 12-00 (обычно в 14-00 уже можно) тянете курс на завтра и сохраняете к себе (в базу, в файл, куда угодно), и потом используете... К примеру, создаете файл exchange.php, в котором храните:
"как есть, пусть каждый пользователь при переходах по страничкам подключается к нацбанку" - вообще не вариант! Странно почему до сих пор "нацбанк" не заблокировал Вас))) А вообще за такое руки отрывают))))
Вы знаете, я уже начал подозревать что они все-таки ограничивают меня когда у меня большая посещаемость... поэтому вот пока не оторвали руки ищу другое решение, сам я не программист, а задачу сформулировать разработчику какую-то надо...)
Задача: "создать таблицу для хранения курсов валют, для последующего извлечения текущего значения и использования на страницах сайта" - думаю такая формулировка предельно ясна для любого разработчика...
Если курс был вытянут давно, а донор немного "прилёг", укажите на страницах, что курс чуть чуть староват, например, выведите рядом время последней синхронизации курса.
Постоянно дергать сайт банка - крайне плохая идея. Вас могут забанить, апи может долго откликатся...
Использовать планировщик заданий и обновлять значения в БД - наиболее правильный вариант.