Русский  English  Все проекты

Микросервис для парсинга и кеширования (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



 Ответы фрилансеров