Микросервис для парсинга и кеширования (php)
Требуется реализовать микросервис кеширования данных предпочтительно на php.
Обращение к микросервису должно осуществляться http-запросами с указанием идентификатора запрашиваемых данных в get-параметре.
При каждом обращении в соответствии с указанным параметров микросервис проверяет в своем хранилище/кеше наличие и актуальность запрашиваемых данных.
Кеш можно реализовать на основе файлов или mysql.
Если данные в наличии и срок жизни кеша не прошел, то данные отдаются в качестве ответа как есть.
Если данные отсутствуют, то выполняется подготовка и сохранение новых данных в кеше с последующей выдачей данных в виде ответа.
Если данные отсутствуют и подготовка новых данных завершилась ошибкой, то микросервис возвращает ошибку {data:[],message:"Error"}
Если данные в наличии, но срок жизни кеша прошел, то выполняется подготовка и сохранение новых данных в кеше с последующей выдачей данных в виде ответа.
Если данные в наличии, но срок жизни кеша прошел и подготовка новых данных завершилась ошибкой, то микросервис возвращает последние закешированные данные и тем не менее обновляет срок жизни кеша.
Подготовка новых данных:
1. микросервис скачивает веб-страницу по url, собранному на основе входного get-параметра.
2. микросервис парсит html-таблицу из примерно 7 колонок на странице (классическая table/tr/td-таблица с несколькими дополнительными тегами)
3. микросервис сохраняет результат парсинга в кеш в json-формате: {data:[кортеж1,кортеж2,...]}
Каждое обращение к микросервису должно фиксироваться в лог-файле в формате похожем на лог apahce/nginx с указанием:
дата и время входной параметр результат обработки
Выдержка из таблицы для примера:
Серия
Компания
Название2
Название3
02.18
Название4
06.06
Название5
25 ч 12 м
На странице в таблице обычно 5-20строк
Рациональные идеи приветствуются.
18.10.2022 15:39