170 похожих чатов

Коллеги, привет! Подскажите пожалуйста, как лучше всего подойти к этому

вопросу и его реализовать. У нас есть база отелей +- 2.5 тысячи, которые мы получаем по отдельности в виде комплексной JSON структуры со стороннего API. Это является фактически кешем, нам нужно где-то их хранить с TTL равным суткам чтоб поддерживать постоянную актуализацию данных, то есть когда запись expired мы обращаемся к API и получаем вновь актуальные данные отеля. Что лучше всего для этого использовать? Будет очень много обращений к базе, так как на основе этих данных будет строиться всё остальное. У нас сейчас даже не продакшн, так что мы не в погоне за производительностью, но на будущее тоже учитывать нужно чтоб не переделывать огромный кусок кода.

Как вариант для этого использовать redis (с модулем RedisJSON)

А что вы можете посоветовать?

3 ответов

10 просмотров

Я бы в PostgreSQL и хранил. А по крону обновлял там данные. Может там в API вообще ограничения какие-то вроде ограничения RPS. Если сразу туда идти при отсутствии данных в Redis, то юзер может ждать долго загрузку страницы

Danylo-TERMINATOR Автор вопроса
Dmitriy Sviridov
Я бы в PostgreSQL и хранил. А по крону обновлял та...

Ну да, там ограничения 20 запросов в секунду на продакш ключе. Но отелей как бы всего у нас 2.5 тысяч, большинство из них загрузится на этапе рекомендательной системы поэтому с этим проблем не будет. А почему постгрес и по крону, какие у этого подхода бенефиты?

Написать кеш с ttl, если в кеше нет, дёргать апи.

Похожие вопросы

Обсуждают сегодня

вот вопрос, вот про это type Events = [String] type Probs = [Double] у курта есть задание Если бы ваши типы Events и Probs были самостоятель­ ными типами данных, а не просто...
Fedor
8
а как с таким борятся ? про термин стак тут мне пока не попадалось ghci> foldr (\(CotMD n ctM _) (mstep,pos) -> if ctM > mstep then (ctM, n) else (mstep, pos)) (0,0) $ take ...
Fedor
13
А ещё docker можно к ассемблеру прикрутить. В целом, системы сборки это настолько несвязанная вещь... Это оффтоп, можно сказать, во всех чатах. Это просто проект, который помо...
КТ315
22
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
сурсы: import std/asyncdispatch, std/httpclient, std/json, std/sequtils, std/strutils, std/unicode, std/unidecode, std/uri, uuid4, regex const GPT4_API...
Qtless Qtless
4
Кто-нибудь может проверить на 11.3 и более ранних версиях, последнее число в трех нижних строках одно и тоже или нет? var Dict: TDictionary<Integer, string>; i, j: Intege...
Boris N (MBo)
6
получается, что он находит одинаковое колво тегов, с разными именами, или я что тто не понял в таксоупе ?
Fedor
46
Раз пошла тема про XML... Delphi XE 10.4.2(но это не важно), XML Data Binding Несколько XSD. В основном содержатся include на расширения. Несколько Namespace, это важно. Бин...
Alexey Gavrilov
4
вот такой код тут тип можно сделать как написано, можно структурой {} data ResOfcot = ResOfcot n ctS ctM ctLr listcot = [(n, cotStd n, cotlModcount n, cotLR n) | n <- nat] l...
Fedor
6
как ты определяешь что код не работает?
Mixail Frolov
13
Карта сайта