slow_down 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
[](http://badge.fury.io/rb/slow_down)
|
3
4
|
[](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
|