throttler
throttler copied to clipboard
Control the throughput of function calls and core.async channels
Firstly, thanks for your time spend on this lib. Unfortunately I can see issue when using `fn-throttler` which is a blocker for me. I'm trying to use API with contraint...
Hi, I had an issue that you may be interested in. With deps file containing only `throttler {:mvn/version "1.0.0"}` I was getting this: ```$ clj Clojure 1.10.0 user=> (require ['throttler.core...
Per #11, some rates aren't possible due to rounding and we can't specify sub-[10ms](https://github.com/clojure/core.async/blob/162d4e62aeb41b50602bb808657f090e0504391c/src/main/clojure/clojure/core/async/impl/timers.clj#L23) in core.async/timeout because of how it [buckets requests](http://danboykis.com/posts/core-async-timeout-channels/). Per @dball's advice on the clojurians Slack I...
For example, for `(throttle-fn f 140 :second)`, I get 100 req/s and for `(throttle-fn f 150 :second)`, I get 200 req/s. I believe it's related to [sleep-time and token-value calculation...
feature request: consider a plain concurrency limit (so eg: max burst of 1000 but at most 50 at a time). Really like this library btw, good job!
this permits bursting to start immediately i have an API with constraints - 50 calls per minute 2500 calls per day i've modelled this with a throttle-fn for the per-minute...
Add a test case that asserts that `false` can be piped through a throttled channel. This is to avoid possible bugs where we check for truthiness instead of `nil` when...
Just a suggestion, in erlang the cost of writing to a channel is directly linked to the number of unprocessed messages the channel has. So at low-bandwidth times there's no...