PHP как закешировать curl_init()?

Есть удаленный API с адресами у которого есть ограничения на подключения, допускается 60 новых подключений в минуту

С моей стороны логика такая: пользователь в поле пишет адрес и при каждом нажатие запускается аякс который запускает скрипт затем через Curl идет обращение к API

Как я понял при каждом запуске скрипт заново инициализуеться соединение curl_init() и вскором времени API перестает отвечать так как превышается лимит соединений

Пожалуйста подскажите как я могу закешировать curl_init()? или тут надо действовать по другому?


Ответы (2 шт):

Автор решения: Ivan Dudarev

У вас есть какой-то УРЛ и набор параметров, которые вы передаёте. Из них вам нужно построить уникальную строку (например, хэш sha). Эта строка будет ключом кэша.

При необходимости запроса, в проверяете в хранилище кэша этот ключ. Если ключ имеется, берёте данные из кэша и работаете с ними. Если ключа в кэше нет, выполняете запрос к апи, кладёте в кэш данные с этим ключом и обрабатываете данные.

→ Ссылка
Автор решения: Валентин Варапаев

В общем, проблему решил следующим способом:

  1. Нужно написать PHP-демона который сделает одно подключение, а потом, в цикле будет выполнять запросы по одному и тому же подключению
  2. Чтобы отправлять и получать данные из этого запущенного PHP-демона нужно использовать вебсокеты
→ Ссылка