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