shad-go/ratelimit
2021-03-05 14:07:24 +03:00
..
ratelimit.go Add ratelimit code 2021-03-05 14:06:52 +03:00
ratelimit_test.go Add ratelimit task 2021-03-05 14:07:24 +03:00
README.md Add ratelimit task 2021-03-05 14:07:24 +03:00

ratelimit

Напишите примитив синхронизации, ограничивающий число вызовов на интервале времени.

func NewLimiter(maxCount int, interval time.Duration) *Limiter

func (l *Limiter) Acquire(ctx context.Context) error

Limiter должен гарантировать, что на любом интервале времени interval, не больше maxCount вызовов Acquire могут завершиться без ошибки.

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