delay_queue 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +3 -1
- data/VERSION +1 -1
- data/delay_queue.gemspec +2 -2
- data/lib/delay_queue.rb +4 -0
- data/spec/delay_queue_spec.rb +9 -0
- metadata +15 -15
data/README.md
CHANGED
@@ -13,7 +13,7 @@ Use Cases
|
|
13
13
|
Throttling
|
14
14
|
----------
|
15
15
|
|
16
|
-
For example, if you want to send notifications
|
16
|
+
For example, if you want to send notifications when something happens, but you don't want to flood any one recipient with notifications (eg: when an exception is thrown), you could put an application id into an 'exception_notifications' queue every time an exception is logged, setting the dequeue time to @application.last_notified_at + MAX_NOTIFY_FREQUENCY. The uniqueness constraint ensures that the application id only gets added once until it is next dequeued, while the time constraint ensures that the application id will only be dequeued once per MAX_NOTIFY_FREQUENCY.
|
17
17
|
|
18
18
|
External Resources
|
19
19
|
------------------
|
@@ -61,6 +61,8 @@ Example:
|
|
61
61
|
queue.dequeue
|
62
62
|
- nil
|
63
63
|
|
64
|
+
Note that since DelayQueue uses Redis, all items are queued and returned as strings.
|
65
|
+
|
64
66
|
|
65
67
|
Contributing to delay_queue
|
66
68
|
==========================
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/delay_queue.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "delay_queue"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Daniel Nelson"]
|
12
|
-
s.date = "2011-11-
|
12
|
+
s.date = "2011-11-30"
|
13
13
|
s.description = "A thread safe, Redis backed queue with the ability to delay items from being dequeued"
|
14
14
|
s.email = "dnelson@centresource.com"
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/delay_queue.rb
CHANGED
data/spec/delay_queue_spec.rb
CHANGED
@@ -56,6 +56,15 @@ describe "DelayQueue" do
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
+
describe "#delete" do
|
60
|
+
it "should remove the element from the queue, whether or not it is ready to be dequeued" do
|
61
|
+
@queue.enqueue('test')
|
62
|
+
@queue.should_not be_empty
|
63
|
+
@queue.delete('test')
|
64
|
+
@queue.should be_empty
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
59
68
|
describe "#delete_all!" do
|
60
69
|
it "should remove all elements from the queue, whether or not they are ready to be dequeued" do
|
61
70
|
@queue.enqueue('test')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delay_queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
12
|
+
date: 2011-11-30 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: redis
|
16
|
-
requirement: &
|
16
|
+
requirement: &2155787140 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.2.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2155787140
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &2155786580 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 2.3.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2155786580
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &2155786020 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2155786020
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &2155785500 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.6.4
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2155785500
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rcov
|
60
|
-
requirement: &
|
60
|
+
requirement: &2155779860 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2155779860
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: ruby-debug19
|
71
|
-
requirement: &
|
71
|
+
requirement: &2155779360 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2155779360
|
80
80
|
description: A thread safe, Redis backed queue with the ability to delay items from
|
81
81
|
being dequeued
|
82
82
|
email: dnelson@centresource.com
|
@@ -114,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
114
114
|
version: '0'
|
115
115
|
segments:
|
116
116
|
- 0
|
117
|
-
hash:
|
117
|
+
hash: -100492983818237701
|
118
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
119
|
none: false
|
120
120
|
requirements:
|