Я использую продукт Amazon API, который имеет ограничение в один запрос в секунду с тем же IP-адресом.
Можно ли определить php curl, что каждый запрос выполняется на расстоянии 1 секунды? (Глобальный)
вы должны использовать sleep(1);
функция задержки в цикле
Если вам нужно глобальное решение, вы можете использовать очереди (например, Redis и т. Д.). Ваш скрипт, который обрабатывает посетителей, просто помещает запросы в эту очередь. Другая служба читает эту очередь один раз в секунду и отправляет запрос cURL.
Таким же образом вы можете использовать базу данных в качестве очереди: одна служба помещает записи в базу данных, а другая читает базу данных один раз в секунду для следующей записи и выполняет запрос cURL.
Сохраните все запросы от пользователей в нечто вроде очереди. Вы можете использовать db (mysql и т. Д.) Или в кеше памяти (redis). Затем обработайте запрос по одному с задержкой в 1 секунду.