pytilpack.ratelimit¶
pytilpack.ratelimit
¶
レートリミッター。
pytilpack.httpxの429リトライ、pytilpack.functools.retry、 pytilpack.quart.set_max_concurrencyとは独立して リクエスト送信前にレートを制御するトークンバケット実装。
RateLimiter(rate, per=1.0)
¶
トークンバケット方式のレートリミッター。
例:
毎秒10リクエストに制限する::
limiter = RateLimiter(rate=10, per=1.0)
async with limiter:
await make_request()
初期化。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
rate
|
float
|
期間あたりの許可数。 |
必須 |
per
|
float
|
期間(秒)。 |
1.0
|
ソースコード位置: pytilpack/ratelimit.py
acquire()
async
¶
トークンを1つ消費する。不足時は補充されるまで待機。