Алгоритм замены данных в базе данных

167
09 февраля 2018, 21:40

Есть данные, которые я беру от API. Иногда этот API любит подлагивать и возвращает данные с задержкой в 5-6, а иногда и 20-30 секунд, что, разумеется, критично и пользователь может просто не дождавшись получения интересующей его информации уйти с сайта. Принял решение класть полученные от API данные в БД и вытаскивать их по следующему алгоритму:

  1. Пользователь зашёл на сайт. Автоматически при загрузке страницы ушёл запрос на получение данных к PHP посредством AJAX-запроса.
  2. PHP получил данные для запроса и инициировал обращение к внешнему серверу.
  3. Данные от API получены. Сверяем MD5-хэши имеющихся и полученных данных. Если хэши совпадают - отдаём из базы, если нет - кладём новопришедшие данные в БД с заменой.

Но я не учёл того, что пока сервер будет ждать ответа от API, то он не сможет сравнить хэши и, соответственно, отдать пользователю данные из базы. Я придумал, как это можно решить: просто отдаём сразу данные из БД, а потом уже в фоне ждём ответа от API и сверяем актуальность данных. Если данные неактуальны - кладём в БД и при последующих запросах уже будут выводиться свежие данные. В связи с этим, у меня вопрос: я ведь могу достать данные из базы, сделать return $data; в функции предварительно вызвав другую функцию, которая будет в фоне ждать ответа на запрос и проверять данные? Будет ли это работать? Возможно, я слишком сложно всё придумал и есть варианты попроще?

READ ALSO
Ошибка Error while sending QUERY packet. PID= при работе с циклом

Ошибка Error while sending QUERY packet. PID= при работе с циклом

Имеется массив с данными, примерно 10000 элементов (не предел) - пользователи вк с полями ( user_id, name, photo, total_score) получаю через vk api

212
Ошибка в php Trying to get property of non-object

Ошибка в php Trying to get property of non-object

Делаю парсер который из https://habrahabrru будет парсить последний пост в каждом из самостоятельно заданных хабов

176
Установить php 5.6 на xampp - windows 2003

Установить php 5.6 на xampp - windows 2003

Всем приветЕсть VPS сервер на windows 2003

234