Парсинг по расписанию и аплоад в БД?
Привет!
Нужен совет и мысли вслух о порядке действий.
Задача такая (тестовая)
По расписанию, каждую ночь получать со стороннего АПИ файл с данными (100000 записей на 14000 товаров)
Сгруппировать по шаблону товары
Загрузить в БД (монго)
Сторонний АПИ это что-то метафизическое, доступа к нему нет, просто файл.
Ну как я понимаю порядок действие:
На NestJS Cron задача, axios отправляет гет запросы на адрес пока через через пост не получит файл с выгрузкой
Парсим в свой шаблон
Загружаем в базу
Ждем следующей ночи
Вопрос возникает ещё и по БД.
Судя по всему каждую ночь в файле выгрузка всех товаров
Нужно каким-то образом найти разницу и пометить товары как удаленные / не активные из старого списка
Как правильнее тут поступить?
Выгрузить старую на сервер и сравнить с новой
Или есть какие-то методы в mongoose ?
Прошу прощения за спонтанность, просто нужен мозговой штурм и накинуть идей хороших на вентилятор
Всем спасибо)
Дополнительно:
axios отправляет гет запросы на адрес пока через через пост не получит файл с выгрузкой
???
Как вариант на том сервере тоже крон и тоже каждую ночь формирует и отправляет пост с файлом.
Или я его должен нет запроса к тому арт тригернуть и после этого получать файл
Тебе нужен критерий, как отличать старые записи (дубликаты или не изменившиеся, тебе виднее что там) от новых.
Если удобного идентификатора нет, то обычно самое простое, - формировать из сравниваемых данных строку одинаковым способом, и получать из нее хеш сумму (md5 более чем подходит, если данных не 16-значное количество, т.е. не нужно заботиться о коллизиях), его и используй как идентификатор и храни где-то списком как предыдущие значения и сравнивай с ново загруженной, прямо во время анализа. Записи, хеш сумма которых, не была найдена в записях, помещай в базу данных (ну или обновляй значения, если речь идет о модификации а не добавлении новых).
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для реализации парсинга данных по расписанию и их последующей загрузки в базу данных, вам необходимо использовать сочетание задач планировщика (например, cron jobs) и скриптов на языке программирования, который вы выберете для этой цели.
Давайте предположим, что вы хотите реализовать эту функциональность с использованием PHP. Вам необходимо создать скрипт PHP, который будет выполнять парсинг данных и загрузку их в базу данных. Ниже приведен пример такого скрипта:
Далее вам необходимо настроить задачу планировщика для запуска этого скрипта по расписанию. Например, если вы используете cron jobs, то вы можете добавить следующую запись в файл crontab:
Эта запись означает, что скрипт будет выполняться каждую минуту. Вы можете настроить расписание выполнения скрипта в соответствии с вашими требованиями.
Таким образом, используя задачи планировщика и скрипты на языке программирования, вы сможете реализовать парсинг данных по расписанию и их загрузку в базу данных.