1

Тема: Надсилання запиту не частіше, ніж раз на секунду

Маю скрипта, який надсилає запити за вимогою користувача до якогось сервісу на CURL. Проблема полягає в тому, що сервіс для запобігання ДДоС атаці відхиляє всі запити, що приходять частіше, ніж раз на секунду. Чи є якесь типове рішення цього питання, бо зараз піднімати демона з чергою запитів, зчитувати результати AJAX`ом не хочу, а як в php обмазуватися спільними міжсесійними атомарними змінними та критичними секціями/ м'ютексами - не знаю.

2

Re: Надсилання запиту не частіше, ніж раз на секунду

ну тут один скриптом не обійтись, я б на два розбив:
- один пише в чергу, себто у файл, бд, чи де інде
- другий витягує з черги і робить далі все що треба

3

Re: Надсилання запиту не частіше, ніж раз на секунду

Я про демона це і казав

4

Re: Надсилання запиту не частіше, ніж раз на секунду

Можна створити пустий файл, щоразу перевіряти, коли його було востаннє змінено (якщо менш ніж секунду чи дві тому — чекаємо або відхиляємо запит), безпосередньо перед діями з зовнішнім сервісом встановлювати йому поточний час з допомогою touch().

Подякували: 0xDADA11C7, 221VOLT, raxp3

5

Re: Надсилання запиту не частіше, ніж раз на секунду

Дякую, саме цей тимчасовий індуський костиль мені і потрібний.

6

Re: Надсилання запиту не частіше, ніж раз на секунду

До речі, в мануалах до filemtime() пишуть про кешування її результатів. Якщо так, у варіанті з чеканням треба чистити кеш після затримки.

Подякували: 0xDADA11C7, raxp, leofun013

7

Re: Надсилання запиту не частіше, ніж раз на секунду

"Запити за вимогою користувача" звучить не однозначно. Той випадок, коли користувач генерує серію запитів з "різними життями PHP-скрипта" вже описали.

Але ж може користувач одним запитом до посередника (PHP-програми) спричиняє багато запитів до зовнішнього сервісу? Тобто може обмеження треба робити за одне життя PHP-скрипта, хоча звичайно сумніваюсь що до цього не додумались розробники...