slow_down 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/lib/slow_down/configuration.rb +6 -6
- data/lib/slow_down/group.rb +4 -4
- data/lib/slow_down/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d65a0d209c8b07da2fdc910f1d092ba7a302ebb9
|
4
|
+
data.tar.gz: 2f1e5f20d2e1d508fa53a1d6a9bb274a934f376a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b8b5e99ff101926e2f6a6574dbeea239844862717a53873ada6118b4e0c6da0793524e160616eccf0db9131c27530ec234b14bb2b1c0b73b73ef6569755f869b
|
7
|
+
data.tar.gz: 2505e99a90931a978f47665ddde1348472535e6338d785924c3d6d400d5fac562d77ca7fad35be6e22e1ce6d83c4438534e4bd4853e12bd1c4645df520a87bc0
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# SlowDown
|
2
2
|
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/slow_down.svg)](http://badge.fury.io/rb/slow_down)
|
3
4
|
[![Build Status](https://travis-ci.org/lipanski/slow-down.svg?branch=master)](https://travis-ci.org/lipanski/slow-down)
|
4
5
|
|
5
6
|
## Why would you want to slow down your requests?!
|
@@ -61,12 +61,12 @@ module SlowDown
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
def
|
65
|
-
@
|
64
|
+
def milliseconds_per_request
|
65
|
+
@milliseconds_per_request ||= 1000.0 / requests_per_second
|
66
66
|
end
|
67
67
|
|
68
|
-
def
|
69
|
-
@
|
68
|
+
def milliseconds_per_request_per_lock
|
69
|
+
@milliseconds_per_request_per_lock ||= (milliseconds_per_request * concurrency).round
|
70
70
|
end
|
71
71
|
|
72
72
|
def seconds_per_retry(retry_count)
|
@@ -101,8 +101,8 @@ module SlowDown
|
|
101
101
|
@log_level = nil
|
102
102
|
@concurrency = nil
|
103
103
|
@locks = nil
|
104
|
-
@
|
105
|
-
@
|
104
|
+
@milliseconds_per_request = nil
|
105
|
+
@milliseconds_per_request_per_lock = nil
|
106
106
|
@seconds_per_retry = nil
|
107
107
|
@seconds_per_retry_arr = nil
|
108
108
|
end
|
data/lib/slow_down/group.rb
CHANGED
@@ -44,14 +44,14 @@ module SlowDown
|
|
44
44
|
|
45
45
|
def run
|
46
46
|
expires_at, iteration = Time.now + config.timeout, 0
|
47
|
-
config.logger.
|
47
|
+
config.logger.info(name) { "Run attempt initiatied, times out at #{expires_at}" }
|
48
48
|
|
49
49
|
begin
|
50
50
|
return yield if free?
|
51
51
|
wait(iteration += 1)
|
52
52
|
end until Time.now > expires_at
|
53
53
|
|
54
|
-
config.logger.
|
54
|
+
config.logger.info(name) { "Run attempt timed out" }
|
55
55
|
if config.raise_on_timeout
|
56
56
|
config.logger.error(name) { "Timeout error raised" }
|
57
57
|
raise Timeout
|
@@ -60,8 +60,8 @@ module SlowDown
|
|
60
60
|
|
61
61
|
def free?
|
62
62
|
config.locks.each do |key|
|
63
|
-
if config.redis.set(key, 1, px: config.
|
64
|
-
config.logger.info(name) { "Lock #{key} was acquired for #{config.
|
63
|
+
if config.redis.set(key, 1, px: config.milliseconds_per_request_per_lock, nx: true)
|
64
|
+
config.logger.info(name) { "Lock #{key} was acquired for #{config.milliseconds_per_request_per_lock}ms" }
|
65
65
|
return true
|
66
66
|
end
|
67
67
|
end
|
data/lib/slow_down/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slow_down
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florin Lipan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|