X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Как узнать количество запросов к удаленному файлу?
misnik
misnik
Topic Starter сообщение 11.4.2013, 6:01; Ответить: misnik
Сообщение #1


Есть php скрипт, который обращается к API стороннего сервиса. Там стоит ограничение: не более 10 запросов в секунду.
Нашему скрипту постоянно удается благополучно преодолеть этот предел и наш IP блокируют.
Анализ кода ничего не дал. Или мы не знаем как это сделать, отследить. По логике в скрипте обращение идет максимум 2 раза.

Вопрос: как ограничить число запросов из скрипта? как это отследить? как явно вывести данное число для самоконтроля скрипта (например: при вызове скрипт генерит строку Обращений в секунду: 5)?

Вопрос может быть и ламерский, но подскажите в каком направлении копать?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
сообщение 11.4.2013, 9:51; Ответить: webpavilion
Сообщение #2


в чем проблема то? оберните то что у вас инициализирует работу с API в код который будет хранить количество инициализаций где нибудь в: file, mysql, shm и т.д.

еще есть верный костыль для подобных ситуаций:
usleep(125000); // ждать 0.125 секунды

в вашем случаи лучше конечно разобраться откуда столько запросов, но можно сделать и с usleep если скорость работы не так важна.


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ISINK
ISINK
сообщение 11.4.2013, 10:28; Ответить: ISINK
Сообщение #3


misnik, Как вариант сделать счетчик в memcache (если не работали с ним то пример)
Примерно код проверки
counter.php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");


$metka = time();
if($count_per_second = $memcache->get($metka))
{
    $count_per_second = $count_per_second+1;
    $memcache->set($metka, $count_per_second, false, 300);   // Храним счетчики  5 минут
}
else
{
    $memcache->set($metka, 1, false, 300);   //  Первая запись по счетчику
}

Код который выводит частоту запросов в секунду по последней минуте
echo.php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");

$time = time();
for($i=$time;$i>=($time-60);$i--)
{

    if($count = $memcache->get($i))
    {
        echo $count."<br>\n";
    }
    else echo "0<br>\n";

    
}


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Бесплатный онлайн-консультант Chathelp.ru


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Как в пушсетках покупают по 100-200 тысяч кликов за день?
2 Boymaster 695 Вчера, 17:52
автор: Boymaster
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
151 adw-kupon.ru 19864 23.4.2024, 13:52
автор: Vmir
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
20 uahomka 3477 23.4.2024, 11:54
автор: Skyworker
Горячая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
30 freeax 5041 20.4.2024, 16:49
автор: Liudmila
Открытая тема (нет новых ответов) Арбитражники, как ведете учет расходов и доходов?
13 Boymaster 2036 20.4.2024, 15:06
автор: Boymaster


 



RSS Текстовая версия Сейчас: 25.4.2024, 13:21
Дизайн