|
|
|
Ограничение количества запросов к скрипту за единицу времени (APC)
|
|||
|---|---|---|---|
|
#18+
Добрый день, имеется задача, ограничить количество обращений к скрипту: не чаще одного запроса в 10 секунд с одного IP. Решил использовать для этой цели APC, пример кода ниже: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Заливаю скрипт на хостинг и начинаю лихорадочно обновлять страницу (не дожидаясь даже окончания выполнения скрипта), в результате получаю такой лог: 2013-02-13 11:06:54 log entry 2013-02-13 11:06:56 log entry 2013-02-13 11:07:01 log entry 2013-02-13 11:07:07 log entry 2013-02-13 11:07:11 log entry 2013-02-13 11:07:18 log entry 2013-02-13 11:07:20 log entry 2013-02-13 11:07:29 log entry 2013-02-13 11:07:29 log entry 2013-02-13 11:07:33 log entry Как видно интервал в 10 секунд между запросами не соблюдается, пробую обновлять страницу примерно раз в секунду, каждый раз дожидаясь полного выполнения скрипта: 2013-02-13 11:09:15 log entry 2013-02-13 11:09:21 log entry 2013-02-13 11:09:32 log entry 2013-02-13 11:09:36 log entry 2013-02-13 11:09:42 log entry 2013-02-13 11:09:53 log entry Собственно вопрос, почему такое происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 09:11 |
|
||
|
Ограничение количества запросов к скрипту за единицу времени (APC)
|
|||
|---|---|---|---|
|
#18+
Может ли кто-нибудь протестировать скрипт на своём севрере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 10:43 |
|
||
|
Ограничение количества запросов к скрипту за единицу времени (APC)
|
|||
|---|---|---|---|
|
#18+
poiuytrewq, область хранения данных apc, помнится, не шарилась между различными экземплярами php интерпретатора. (см https://bugs.php.net/bug.php?id=57825] https://bugs.php.net/bug.php?id=57825 ) Те lock переменная у этих запросов на самом деле могла быть разная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 11:39 |
|
||
|
Ограничение количества запросов к скрипту за единицу времени (APC)
|
|||
|---|---|---|---|
|
#18+
Понятно, пробую решить задачу на файлах Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. натравливаю на скрипт ApacheBench 1000 запросов, 100 единовременных, в лог попадает 4 записи с одинаковым временем, т.е. с момента чтения файла с данными о подключениях до момента его обновления успевают "проскочить" 4 запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2013, 09:49 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38150615&tid=1464127]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 341ms |

| 0 / 0 |
