We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 3fad038 commit 16776e3Copy full SHA for 16776e3
Rate Limiter.js
@@ -0,0 +1,28 @@
1
+function* generator() {
2
+ var rate = 5;
3
+ var per = 8;
4
+ var lastTime = Date.now();
5
+ var allowance = rate; // unit: messages
6
+
7
+ while(true) {
8
+ var currentTime = Date.now();
9
+ var timeElapsed = (currentTime - lastTime)/1000;
10
+ var lastTime = currentTime;
11
+ var addedTime = timeElapsed*(rate/per);
12
13
+ allowance += addedTime;
14
15
16
+ console.log('allowance',allowance, addedTime);
17
+ if(allowance > rate) {
18
+ allowance = rate;
19
+ }
20
21
+ if (allowance < 1.0) {
22
+ yield false;
23
+ } else {
24
+ allowance -= 1.0;
25
+ yield true;
26
27
28
+}
0 commit comments