iron_mq 1.4.1 → 1.5.0
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/VERSION.yml +2 -2
- data/iron_mq.gemspec +4 -2
- data/lib/iron_mq/client.rb +7 -2
- data/lib/iron_mq/messages.rb +1 -1
- data/test/long_run.rb +5 -5
- data/test/schedule_abt.rb +4 -0
- data/test/test_beanstalkd.rb +53 -0
- data/test/test_iron_mq.rb +18 -32
- metadata +12 -10
data/VERSION.yml
CHANGED
data/iron_mq.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "iron_mq"
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Travis Reeder"]
|
12
|
-
s.date = "2012-02
|
12
|
+
s.date = "2012-03-02"
|
13
13
|
s.description = "Ruby client for IronMQ"
|
14
14
|
s.email = "travis@iron.io"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -29,7 +29,9 @@ Gem::Specification.new do |s|
|
|
29
29
|
"test/long_run.rb",
|
30
30
|
"test/long_run_worker.rb",
|
31
31
|
"test/quick_run.rb",
|
32
|
+
"test/schedule_abt.rb",
|
32
33
|
"test/test_base.rb",
|
34
|
+
"test/test_beanstalkd.rb",
|
33
35
|
"test/test_iron_mq.rb"
|
34
36
|
]
|
35
37
|
s.homepage = "http://www.iron.io"
|
data/lib/iron_mq/client.rb
CHANGED
@@ -105,11 +105,16 @@ module IronMQ
|
|
105
105
|
# todo: check content-type == application/json before parsing
|
106
106
|
@logger.debug "response code=" + status.to_s
|
107
107
|
@logger.debug "response body=" + body.inspect
|
108
|
-
|
108
|
+
begin
|
109
|
+
res = JSON.parse(body)
|
110
|
+
rescue => ex
|
111
|
+
# an unexpected error response
|
112
|
+
raise IronMQ::Error.new("Status #{status}: #{ex.class.name}: #{ex.message}", :status=>status)
|
113
|
+
end
|
109
114
|
if status < 400
|
110
115
|
|
111
116
|
else
|
112
|
-
raise IronMQ::Error.new(res["msg"], :status=>status)
|
117
|
+
raise IronMQ::Error.new("Status #{status}: #{res["msg"]}", :status=>status)
|
113
118
|
end
|
114
119
|
res
|
115
120
|
end
|
data/lib/iron_mq/messages.rb
CHANGED
data/test/long_run.rb
CHANGED
@@ -20,11 +20,11 @@ end
|
|
20
20
|
worker = LongRunWorker.new
|
21
21
|
worker.config = @config
|
22
22
|
worker.num_to_add = @num_to_add
|
23
|
-
|
24
|
-
worker.queue
|
25
|
-
status = worker.wait_until_complete
|
26
|
-
p status
|
27
|
-
puts worker.get_log
|
23
|
+
worker.run_local
|
24
|
+
#worker.queue
|
25
|
+
#status = worker.wait_until_complete
|
26
|
+
#p status
|
27
|
+
#puts worker.get_log
|
28
28
|
|
29
29
|
|
30
30
|
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# Put config.yml file in ~/Dropbox/configs/ironmq_gem/test/config.yml
|
2
|
+
|
3
|
+
#$abt_config = {:hello=>'abt_config_ya'}
|
4
|
+
|
5
|
+
gem 'test-unit'
|
6
|
+
require 'test/unit'
|
7
|
+
require 'beanstalk-client'
|
8
|
+
require 'yaml'
|
9
|
+
require_relative 'test_base'
|
10
|
+
|
11
|
+
class IronMQTests < TestBase
|
12
|
+
def setup
|
13
|
+
super
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_beanstalk
|
18
|
+
puts 'test_beanstalk'
|
19
|
+
config = @config['iron_mq']
|
20
|
+
h = "#{config['host']||"mq-aws-us-east-1.iron.io"}:#{config['beanstalkd_port']||11300}"
|
21
|
+
puts "beanstalkd url: #{h}"
|
22
|
+
beanstalk = Beanstalk::Connection.new(h)
|
23
|
+
beanstalk.put("oauth #{config['token']} #{config['project_id']}")
|
24
|
+
queue_name = "beanstalk_test"
|
25
|
+
clear_queue(queue_name)
|
26
|
+
beanstalk.use(queue_name)
|
27
|
+
beanstalk.watch(queue_name)
|
28
|
+
|
29
|
+
msg = "hello #{Time.now}"
|
30
|
+
beanstalk.put(msg)
|
31
|
+
job = beanstalk.reserve
|
32
|
+
assert_equal msg, job.body, "body not the same as message."
|
33
|
+
job.delete
|
34
|
+
job = assert_raise(Beanstalk::TimedOut) {
|
35
|
+
beanstalk.reserve(1)
|
36
|
+
}
|
37
|
+
|
38
|
+
hasher = {:x => 1, :y => "hello", "yo" => "scooby doo"}
|
39
|
+
beanstalk.put(hasher.to_json)
|
40
|
+
job = beanstalk.reserve(1)
|
41
|
+
got = JSON.parse(job.body)
|
42
|
+
assert got.is_a?(Hash)
|
43
|
+
assert_equal hasher[:x], got['x']
|
44
|
+
job.delete
|
45
|
+
|
46
|
+
msg = "hello there\nthis is a new line"
|
47
|
+
beanstalk.put(msg)
|
48
|
+
job = beanstalk.reserve(1)
|
49
|
+
assert_equal msg, job.body, "#{job.body} does not equal #{msg}"
|
50
|
+
job.delete
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
data/test/test_iron_mq.rb
CHANGED
@@ -12,6 +12,9 @@ class IronMQTests < TestBase
|
|
12
12
|
def setup
|
13
13
|
super
|
14
14
|
|
15
|
+
queues = @client.queues.list
|
16
|
+
p queues
|
17
|
+
|
15
18
|
clear_queue()
|
16
19
|
|
17
20
|
end
|
@@ -73,6 +76,7 @@ class IronMQTests < TestBase
|
|
73
76
|
|
74
77
|
msg = @client.messages.get()
|
75
78
|
p msg
|
79
|
+
assert msg
|
76
80
|
|
77
81
|
msg4 = @client.messages.get()
|
78
82
|
p msg4
|
@@ -93,6 +97,20 @@ class IronMQTests < TestBase
|
|
93
97
|
|
94
98
|
msg2.delete
|
95
99
|
|
100
|
+
# now try explicit timeout
|
101
|
+
res = @client.messages.post("hello world timeout2!", :timeout=>10)
|
102
|
+
p res
|
103
|
+
msg = @client.messages.get()
|
104
|
+
p msg
|
105
|
+
assert msg
|
106
|
+
msg4 = @client.messages.get()
|
107
|
+
p msg4
|
108
|
+
assert msg4.nil?
|
109
|
+
puts 'sleeping 15 seconds...'
|
110
|
+
msg2 = @client.messages.get()
|
111
|
+
assert msg2
|
112
|
+
assert msg.id == msg2.id
|
113
|
+
|
96
114
|
end
|
97
115
|
|
98
116
|
def test_queues
|
@@ -160,37 +178,5 @@ class IronMQTests < TestBase
|
|
160
178
|
end
|
161
179
|
end
|
162
180
|
|
163
|
-
def test_beanstalk
|
164
|
-
puts 'test_beanstalk'
|
165
|
-
config = @config['iron_mq']
|
166
|
-
h = "#{config['host']||"mq-aws-us-east-1.iron.io"}:#{config['beanstalkd_port']||11300}"
|
167
|
-
beanstalk = Beanstalk::Connection.new(h)
|
168
|
-
beanstalk.put("oauth #{config['token']} #{config['project_id']}")
|
169
|
-
beanstalk.use(@client.queue_name)
|
170
|
-
beanstalk.watch(@client.queue_name)
|
171
|
-
|
172
|
-
msg = "hello #{Time.now}"
|
173
|
-
beanstalk.put(msg)
|
174
|
-
job = beanstalk.reserve
|
175
|
-
assert_equal msg, job.body, "body not the same as message."
|
176
|
-
job.delete
|
177
|
-
job = assert_raise(Beanstalk::TimedOut) {
|
178
|
-
beanstalk.reserve(1)
|
179
|
-
}
|
180
|
-
|
181
|
-
hasher = {:x=>1, :y=>"hello", "yo"=>"scooby doo"}
|
182
|
-
beanstalk.put(hasher.to_json)
|
183
|
-
job = beanstalk.reserve(1)
|
184
|
-
got = JSON.parse(job.body)
|
185
|
-
assert got.is_a?(Hash)
|
186
|
-
assert_equal hasher[:x], got['x']
|
187
|
-
job.delete
|
188
|
-
|
189
|
-
msg = "hello there\nthis is a new line"
|
190
|
-
beanstalk.put(msg)
|
191
|
-
job = beanstalk.reserve(1)
|
192
|
-
assert_equal msg, job.body, "#{job.body} does not equal #{msg}"
|
193
|
-
job.delete
|
194
|
-
end
|
195
181
|
end
|
196
182
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iron_mq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.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: 2012-02
|
12
|
+
date: 2012-03-02 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
16
|
-
requirement: &
|
16
|
+
requirement: &14061040 !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: *14061040
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rest
|
27
|
-
requirement: &
|
27
|
+
requirement: &14060480 !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: *14060480
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rest-client
|
38
|
-
requirement: &
|
38
|
+
requirement: &14059900 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *14059900
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rest
|
49
|
-
requirement: &
|
49
|
+
requirement: &14059100 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *14059100
|
58
58
|
description: Ruby client for IronMQ
|
59
59
|
email: travis@iron.io
|
60
60
|
executables: []
|
@@ -75,7 +75,9 @@ files:
|
|
75
75
|
- test/long_run.rb
|
76
76
|
- test/long_run_worker.rb
|
77
77
|
- test/quick_run.rb
|
78
|
+
- test/schedule_abt.rb
|
78
79
|
- test/test_base.rb
|
80
|
+
- test/test_beanstalkd.rb
|
79
81
|
- test/test_iron_mq.rb
|
80
82
|
homepage: http://www.iron.io
|
81
83
|
licenses: []
|