Comments (6)
Attached a patch anyway. Please test against all environments as I only tested against python 2.7 on linux.
Bottom line:
- It now works as I think it was intended
- Makes two calls to time.time() per function call but I don't think there's gonna be a performance issue.
- Can't see how this could break existing code using set_rate_limit. Still, as was also the case in the previous implementation, one should be wary of where to start the rate limiting, as putting it too early can slow the client's initial connect.
- Testing takes 2 more seconds to run, one of which is a time.sleep()
Original comment by: Nick Raptis
from irc.
Would you consider uploading the patch as a pull request, either here in bitbucket or on the github mirror? That'll help me review and assign attribution.
Original comment by: Jason R. Coombs
from irc.
I was trying to avoid that actually.
I have no idea how to properly manage branches in mercurial and how bitbucket does pull requests, but it's as good time as any to try it.
Just tell me, should I open a new branch for my commit or is it all the same to you and default
is ok?
Original comment by: Nick Raptis
from irc.
It's easy. Just 'fork' the repo, commit your changes in a clone (of either repo) (or edit the file in your fork directly through the web), push the changes to your fork (if necessary), and finally, click Pull Request in your fork.
You may use the default branch for all of this.
Original comment by: Jason R. Coombs
from irc.
Merged in nickraptis/irc (pull request #18)
Better rate limiting (fixes issue #25)
→ <<cset 441b50f97e73>>
Original comment by: Jason R. Coombs
from irc.
Better rate limiting (fixes issue #25)
Previous reate limiting implementation did not work when bursts of
calls were separated by a significant amount of time.
Now limits based on the time of last call instead of the time
the Throttler was started.
→ <>
Original comment by: Jason R. Coombs
from irc.
Related Issues (20)
- The internals still rely on VERSION_STRING HOT 2
- How to cleanly stop a reactor? HOT 2
- why do I get this error when using Pidgin client for connecting to IRC? ERROR :Closing Link: c-66-31-107-137.hsd1.ma.comcast.net (*** Banned ) HOT 1
- How to get connection log? HOT 3
- Add example on how to send a message to a channel HOT 1
- How can i print irc messages in my console?
- Disconnect issue HOT 1
- Implement default handler if nothing matches HOT 1
- [AIO] No client side ping-pong
- [AIO] Excess flood prevention HOT 3
- [AIO] Registering a connection needs to be split out of connect() HOT 1
- [AIO] Connection real_nickname must not be set before registration HOT 1
- [AIO] Implement SASL PLAIN with expect() flow
- High CPU usage in irc.server. HOT 1
- Add support for ignoring ssl validation in the examples HOT 2
- Add support for SASL HOT 4
- In tests DeprecationWarning no event loop
- ValueError when trying to download using DCC HOT 2
- Basic irc bot HOT 1
- DCC Transfers getting stuck HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from irc.