hot_bunnies 2.0.0.pre1-java → 2.0.0.pre2-java
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.
- data/lib/hot_bunnies/consumers.rb +29 -3
- data/lib/hot_bunnies/queue.rb +2 -2
- data/lib/hot_bunnies/version.rb +1 -1
- metadata +2 -2
@@ -21,6 +21,22 @@ module HotBunnies
|
|
21
21
|
|
22
22
|
def handleCancel(consumer_tag)
|
23
23
|
@cancelled.set(true)
|
24
|
+
@channel.unregister_consumer(consumer_tag)
|
25
|
+
|
26
|
+
if f = @opts[:on_cancellation]
|
27
|
+
case f.arity
|
28
|
+
when 0 then
|
29
|
+
f.call
|
30
|
+
when 1 then
|
31
|
+
f.call(self)
|
32
|
+
when 2 then
|
33
|
+
f.call(@channel, self)
|
34
|
+
when 3 then
|
35
|
+
f.call(@channel, self, consumer_tag)
|
36
|
+
else
|
37
|
+
f.call(@channel, self, consumer_tag)
|
38
|
+
end
|
39
|
+
end
|
24
40
|
end
|
25
41
|
|
26
42
|
def handleCancelOk(consumer_tag)
|
@@ -70,9 +86,10 @@ module HotBunnies
|
|
70
86
|
end
|
71
87
|
|
72
88
|
class AsyncCallbackConsumer < CallbackConsumer
|
73
|
-
def initialize(channel, callback, executor)
|
89
|
+
def initialize(channel, opts, callback, executor)
|
74
90
|
super(channel, callback)
|
75
91
|
@executor = executor
|
92
|
+
@opts = opts
|
76
93
|
end
|
77
94
|
|
78
95
|
def deliver(headers, message)
|
@@ -90,7 +107,13 @@ module HotBunnies
|
|
90
107
|
def cancel
|
91
108
|
super
|
92
109
|
|
93
|
-
|
110
|
+
gracefully_shutdown
|
111
|
+
end
|
112
|
+
|
113
|
+
def handleCancel(consumer_tag)
|
114
|
+
super(consumer_tag)
|
115
|
+
|
116
|
+
gracefully_shutdown
|
94
117
|
end
|
95
118
|
|
96
119
|
def shutdown!
|
@@ -100,6 +123,7 @@ module HotBunnies
|
|
100
123
|
|
101
124
|
def gracefully_shut_down
|
102
125
|
unless @executor.await_termination(1, JavaConcurrent::TimeUnit::SECONDS)
|
126
|
+
puts "Shutting down the executor.."
|
103
127
|
@executor.shutdown_now
|
104
128
|
end
|
105
129
|
end
|
@@ -110,13 +134,15 @@ module HotBunnies
|
|
110
134
|
class BlockingCallbackConsumer < CallbackConsumer
|
111
135
|
include JavaConcurrent
|
112
136
|
|
113
|
-
def initialize(channel, buffer_size, callback)
|
137
|
+
def initialize(channel, buffer_size, opts, callback)
|
114
138
|
super(channel, callback)
|
115
139
|
if buffer_size
|
116
140
|
@internal_queue = ArrayBlockingQueue.new(buffer_size)
|
117
141
|
else
|
118
142
|
@internal_queue = LinkedBlockingQueue.new
|
119
143
|
end
|
144
|
+
|
145
|
+
@opts = opts
|
120
146
|
end
|
121
147
|
|
122
148
|
def start
|
data/lib/hot_bunnies/queue.rb
CHANGED
@@ -49,9 +49,9 @@ module HotBunnies
|
|
49
49
|
|
50
50
|
def subscribe(opts = {}, &block)
|
51
51
|
consumer = if opts[:block] || opts[:blocking]
|
52
|
-
BlockingCallbackConsumer.new(@channel, opts[:buffer_size], block)
|
52
|
+
BlockingCallbackConsumer.new(@channel, opts[:buffer_size], opts, block)
|
53
53
|
else
|
54
|
-
AsyncCallbackConsumer.new(@channel, block, opts.fetch(:executor, JavaConcurrent::Executors.new_single_thread_executor))
|
54
|
+
AsyncCallbackConsumer.new(@channel, opts, block, opts.fetch(:executor, JavaConcurrent::Executors.new_single_thread_executor))
|
55
55
|
end
|
56
56
|
|
57
57
|
@consumer_tag = @channel.basic_consume(@name, !(opts[:ack] || opts[:manual_ack]), consumer)
|
data/lib/hot_bunnies/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hot_bunnies
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.pre2
|
5
5
|
prerelease: 6
|
6
6
|
platform: java
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-05-
|
13
|
+
date: 2013-05-31 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: RabbitMQ client for JRuby built around the official RabbitMQ Java client
|
16
16
|
email:
|