Как стать автором
Обновить

Комментарии 3

Между прочим, у Nginx есть встроенный лимитер запросов https://nginx.org/ru/docs/http/ngx_http_limit_req_module.html


Когда-то писал троттлинг вызовов на Python
import time

def rate_throttle(key, rate, d={}):
    current = time.monotonic()
    last = d.get(key, 0)
    elapsed = current - last
    sleep = 0

    if rate > elapsed > 0:
        sleep = rate - elapsed

    d[key] = current + sleep
    return sleep

for i in range(5):
    # No more 5 requests per 1 second
    time.sleep(rate_throttle('', 1/5))
    print('Faster', i)

for i in range(5):
    # No more 1 request per 2 second
    time.sleep(rate_throttle('', 2/1))
    print('Slower', i)
Спасибо за статью. У соседей-функциональщиков уже есть GenStage, «разогнанный» до безобразия :)
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий