Задать вопрос
  • Как не превысить количество обращений к стороннему ресурсу со своего домена?

    @0x131315
    Тебе нужен кеш.
    Кеш - это хранилище, где каждый блок данных имеет как минимум два параметра: идентификатор и время жизни.
    В простейшем случае это папка с файлами, где имя файла - это идентификатор, а время жизни вычисляется по разнице времени модификации файла и текущего времени.
    Идентификатор однозначно идентифицирует блок данных. Обычно идентификатор - это хэш от сериализованного массива, в который помещают всё параметры, от которых зависит содержимое блока данных.
    Например если данные на api зависят только от пути - айди это хэш от пути. А если ещё и от get-параметров, то к пути нужно добавить и эти параметры.
    В таком случае, прежде чем обращаться к api, нужно посчитать хэш от запроса, и проверить, есть ли файл с таким именем в папке кеша, и не слишком ли он старый, и либо отдать данные из файла, либо обратиться к api, перезаписать файл полученными данными, и отдать данные.

    Но вместо того, чтобы во всё это вникать и пилить велосипеды, лучше просто подключить в композере любой из популярных кешей, он не только будет работать лучше самописного, но и предоставит множество инструментов для обслуживания кеша.
    Ответ написан
    2 комментария
  • Как не превысить количество обращений к стороннему ресурсу со своего домена?

    @JohnDidact
    Нуб во всём
    Такой вот круг: прежде, чем запросить инфу по апи, открывай файл и смотри, когда делал запрос, если меньше, чем, например, 10 минут назад, то отдавай кэш… если больше, то проси инфу по апи, обрабатывай её, сохраняй в кэш, в файл записывай время запроса.

    Примерно так…
    Ответ написан
    Комментировать