reugn / equalizer Goto Github PK
View Code? Open in Web Editor NEWA set of performant rate limiters for Go
Home Page: https://pkg.go.dev/github.com/reugn/equalizer
License: MIT License
A set of performant rate limiters for Go
Home Page: https://pkg.go.dev/github.com/reugn/equalizer
License: MIT License
Lines 66 to 79 in d5d1ad1
A token can be issued between line 68 and 69 and then it will lead to a incorrect issued count and decrease the bucket real capacity.
Example:
refill() and Ask() executes concurrently then:
line 68 executes
line 77 and 78 executes
line 69 and 70 executes
Solution:
issued := atomic.SwapInt32(&tb.issued, 0)
Thanks for providing this simple library!
One thing I noted is that Take()
cannot be interrupted if it takes very long (some api limits are very strict), so for example it will considerably delay aborting an action. Could you maybe consider to provide a Take operation which can be interrupted through a context object? That would be a great improvement!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.