@VitaliyBorys

Как избежать рассинхронизации между актуальной базой данных товаров и агрегаторами?

Добрый день. Есть база данных товаров (30 тыс), и есть агрегаторы, которые продают товары.
Обновление базы у агрегаторов происходит каждые 30 минут. Я каждые 30 минут экспортирую данные в файл, а они его считывают. За эти 30 минут может произойти рассинхронизации, то есть у меня товар уже закончился, а у агрегатора он еще висит как актуальный. Какие пути избежания такой проблемы ?
Писать API для агрегаторов ?
Прям доступ БД компания давать не хочет.
  • Вопрос задан
  • 135 просмотров
Решения вопроса 2
ivankomolin
@ivankomolin
Конечно идеальный вариант - сделать api для проверки наличия по товарам из файла экспорта.
Чтобы агрегатор в момент оформления заказа смог убедиться в их наличии, а только в случае успеха сделать заказ у вас. В данном случае нужно рассматривать именно "проверка наличия" + "списание товара в вашей базе" как транзакцию для агрегатора. Если эти две операции выполняются с промежутком во времени, то время неактуальности все равно останется в пределах этого промежутка.
Ответ написан
@oxidmod
Глобально есть 2 стратегии обновления, pull и push
pull - это когда агрегатор сам решает, что хъочет обновиться. Это примерно то, что сейчас у вас есть. Не важно по файлику они получают инфу или дернут АПИ. Если агрегатор будет дергать ваше апи раз в день, рассинхроны по прежнему будут.
push - это когда вы сообщаете агрегатору об изменениях. Для этого нужна поддержка таких обновлений со стороны агрегатора. При любых изменениях в вашей БД вы дергаете АПИ агрегатора и сообщаете ему об изменениях. Здесь рассинхрон минимальный, но захочет ли агрегатор для вас делать подобное - это вопрос =)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы