henchman 0.0.2 → 0.0.3
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/henchman.gemspec +1 -1
- data/lib/henchman.rb +9 -9
- data/lib/henchman/worker.rb +7 -0
- data/spec/henchman_spec.rb +32 -0
- metadata +7 -7
data/henchman.gemspec
CHANGED
data/lib/henchman.rb
CHANGED
@@ -247,21 +247,21 @@ module Henchman
|
|
247
247
|
# @param [String] queue_name the name of the queue to enqueue on.
|
248
248
|
# @param [Object] message the message to enqueue.
|
249
249
|
#
|
250
|
-
def enqueue(queue_name, message)
|
251
|
-
EM::Synchrony.sync(aenqueue(queue_name, message))
|
250
|
+
def enqueue(queue_name, message, headers = {})
|
251
|
+
EM::Synchrony.sync(aenqueue(queue_name, message, headers))
|
252
252
|
end
|
253
253
|
|
254
254
|
#
|
255
255
|
# Enqueue a message asynchronously.
|
256
256
|
#
|
257
|
-
# @param (see #
|
257
|
+
# @param (see #enqueue)
|
258
258
|
#
|
259
259
|
# @return [EM::Deferrable] a deferrable that will succeed when the publishing is done.
|
260
260
|
#
|
261
|
-
def aenqueue(queue_name, message)
|
261
|
+
def aenqueue(queue_name, message, headers = {})
|
262
262
|
deferrable = EM::DefaultDeferrable.new
|
263
263
|
with_direct_exchange do |exchange|
|
264
|
-
exchange.publish(MultiJson.encode(message), :routing_key => queue_name) do
|
264
|
+
exchange.publish(MultiJson.encode(message), :headers => headers, :routing_key => queue_name) do
|
265
265
|
deferrable.set_deferred_status :succeeded
|
266
266
|
end
|
267
267
|
end
|
@@ -274,8 +274,8 @@ module Henchman
|
|
274
274
|
# @param [String] exchange_name the name of the exchange to publish on.
|
275
275
|
# @param [Object] message the object to publish
|
276
276
|
#
|
277
|
-
def publish(exchange_name, message)
|
278
|
-
EM::Synchrony.sync(apublish(exchange_name, message))
|
277
|
+
def publish(exchange_name, message, headers = {})
|
278
|
+
EM::Synchrony.sync(apublish(exchange_name, message, headers))
|
279
279
|
end
|
280
280
|
|
281
281
|
#
|
@@ -285,10 +285,10 @@ module Henchman
|
|
285
285
|
#
|
286
286
|
# @return [EM::Deferrable] a deferrable that will succeed when the publishing is done.
|
287
287
|
#
|
288
|
-
def apublish(exchange_name, message)
|
288
|
+
def apublish(exchange_name, message, headers = {})
|
289
289
|
deferrable = EM::DefaultDeferrable.new
|
290
290
|
with_fanout_exchange(exchange_name) do |exchange|
|
291
|
-
exchange.publish(MultiJson.encode(message)) do
|
291
|
+
exchange.publish(MultiJson.encode(message), :headers => headers) do
|
292
292
|
deferrable.set_deferred_status :succeeded
|
293
293
|
end
|
294
294
|
end
|
data/lib/henchman/worker.rb
CHANGED
data/spec/henchman_spec.rb
CHANGED
@@ -34,6 +34,38 @@ describe Henchman do
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
it 'should allow enqueing of headers' do
|
38
|
+
val = rand(1 << 32)
|
39
|
+
found = nil
|
40
|
+
deferrable = EM::DefaultDeferrable.new
|
41
|
+
Henchman::Worker.new("test.queue") do
|
42
|
+
if headers.header[:headers]["val"] == val
|
43
|
+
found = val
|
44
|
+
deferrable.set_deferred_status :succeeded
|
45
|
+
end
|
46
|
+
nil
|
47
|
+
end.consume!
|
48
|
+
Henchman.enqueue("test.queue", {}, {:val => val})
|
49
|
+
EM::Synchrony.sync deferrable
|
50
|
+
found.should == val
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should allow publishing of headers' do
|
54
|
+
val = rand(1 << 32)
|
55
|
+
found = nil
|
56
|
+
deferrable = EM::DefaultDeferrable.new
|
57
|
+
Henchman::Worker.new("test.receiver") do
|
58
|
+
if headers.header[:headers]["val"] == val
|
59
|
+
found = val
|
60
|
+
deferrable.set_deferred_status :succeeded
|
61
|
+
end
|
62
|
+
nil
|
63
|
+
end.subscribe!
|
64
|
+
Henchman.publish("test.receiver", {}, {:val => val})
|
65
|
+
EM::Synchrony.sync deferrable
|
66
|
+
found.should == val
|
67
|
+
end
|
68
|
+
|
37
69
|
it 'should consume jobs' do
|
38
70
|
val = rand(1 << 32)
|
39
71
|
found = nil
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: henchman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-03-15 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: amqp
|
16
|
-
requirement: &
|
16
|
+
requirement: &70232597137660 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70232597137660
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: em-synchrony
|
27
|
-
requirement: &
|
27
|
+
requirement: &70232597137180 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70232597137180
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: multi_json
|
38
|
-
requirement: &
|
38
|
+
requirement: &70232597136720 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70232597136720
|
47
47
|
description: A maximally simple amqp wrapper
|
48
48
|
email:
|
49
49
|
- martin@oort.se
|