iron_mq 2.1.2 → 2.1.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/lib/iron_mq/queues.rb +4 -3
- data/lib/iron_mq/version.rb +1 -1
- data/test/long_run.rb +6 -2
- data/test/long_run_worker.rb +22 -18
- data/test/quick_run.rb +0 -1
- data/test/test_beanstalkd.rb +0 -4
- data/test/test_iron_mq.rb +30 -33
- data/test/tmp.rb +33 -4
- metadata +2 -2
data/lib/iron_mq/queues.rb
CHANGED
@@ -142,7 +142,7 @@ module IronMQ
|
|
142
142
|
def poll(options={}, &blk)
|
143
143
|
sleep_duration = options[:sleep_duration] || 1
|
144
144
|
while true
|
145
|
-
p options
|
145
|
+
#p options
|
146
146
|
msg = get(options)
|
147
147
|
if msg.nil?
|
148
148
|
if options[:break_if_nil]
|
@@ -150,9 +150,10 @@ module IronMQ
|
|
150
150
|
else
|
151
151
|
sleep sleep_duration
|
152
152
|
end
|
153
|
+
else
|
154
|
+
yield msg
|
155
|
+
msg.delete
|
153
156
|
end
|
154
|
-
yield msg
|
155
|
-
msg.delete
|
156
157
|
end
|
157
158
|
end
|
158
159
|
|
data/lib/iron_mq/version.rb
CHANGED
data/test/long_run.rb
CHANGED
@@ -11,12 +11,16 @@ end
|
|
11
11
|
require_relative 'long_run_worker'
|
12
12
|
|
13
13
|
@config = UberConfig.load
|
14
|
-
@num_to_add =
|
14
|
+
@num_to_add = 10000
|
15
|
+
|
16
|
+
p @config
|
15
17
|
|
16
18
|
worker = LongRunWorker.new
|
17
|
-
worker.queue_name = "concur5"
|
18
19
|
worker.config = @config
|
20
|
+
worker.queue_name = "concur8"
|
21
|
+
worker.num_threads = 100
|
19
22
|
worker.num_to_add = @num_to_add
|
23
|
+
worker.skip_get_and_delete = false
|
20
24
|
worker.run
|
21
25
|
#worker.queue
|
22
26
|
#status = worker.wait_until_complete
|
data/test/long_run_worker.rb
CHANGED
@@ -3,7 +3,7 @@ require 'iron_mq'
|
|
3
3
|
|
4
4
|
class LongRunWorker
|
5
5
|
|
6
|
-
attr_accessor :config, :num_to_add, :queue_name
|
6
|
+
attr_accessor :config, :num_to_add, :queue_name, :skip_get_and_delete, :num_threads
|
7
7
|
|
8
8
|
def run
|
9
9
|
|
@@ -14,7 +14,7 @@ class LongRunWorker
|
|
14
14
|
|
15
15
|
start = Time.now
|
16
16
|
puts "Queuing #{@num_to_add} items at #{start}..."
|
17
|
-
executor = Concur::Executor.new_thread_pool_executor(
|
17
|
+
executor = Concur::Executor.new_thread_pool_executor(num_threads || 20)
|
18
18
|
@num_to_add.times do |i|
|
19
19
|
task = executor.execute do
|
20
20
|
begin
|
@@ -35,6 +35,7 @@ class LongRunWorker
|
|
35
35
|
sleep 2
|
36
36
|
end
|
37
37
|
put_time = (Time.now.to_f - start.to_f)
|
38
|
+
sleep 1
|
38
39
|
puts "Finished pushing in #{put_time} seconds"
|
39
40
|
|
40
41
|
queue = @client.queue(queue_name)
|
@@ -43,23 +44,26 @@ class LongRunWorker
|
|
43
44
|
|
44
45
|
#exit if true
|
45
46
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
47
|
+
if skip_get_and_delete
|
48
|
+
start = Time.now
|
49
|
+
puts "Getting and deleting #{@num_to_add} items at #{start}..."
|
50
|
+
@num_to_add.times do |i|
|
51
|
+
task = executor.execute do
|
52
|
+
puts "GET #{i}..."
|
53
|
+
res = queue.get()
|
54
|
+
p res
|
55
|
+
puts "DELETE #{i}..."
|
56
|
+
res = queue.delete(res.id)
|
57
|
+
p res
|
58
|
+
end
|
56
59
|
end
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
60
|
+
i = 0
|
61
|
+
while executor.queue_size > 0 do
|
62
|
+
i += 1
|
63
|
+
puts "waiting #{i}, queue size=#{executor.queue_size}"
|
64
|
+
sleep 2
|
65
|
+
end
|
66
|
+
sleep 1
|
63
67
|
end
|
64
68
|
|
65
69
|
queue = @client.queue(queue_name)
|
data/test/quick_run.rb
CHANGED
data/test/test_beanstalkd.rb
CHANGED
data/test/test_iron_mq.rb
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
# Put config.yml file in ~/Dropbox/configs/ironmq_gem/test/config.yml
|
2
|
-
|
3
|
-
#$abt_config = {:hello=>'abt_config_ya'}
|
4
|
-
|
5
1
|
gem 'test-unit'
|
6
2
|
require 'test/unit'
|
7
3
|
require 'yaml'
|
@@ -43,7 +39,7 @@ class IronMQTests < TestBase
|
|
43
39
|
|
44
40
|
queue = @client.queues.get(:name => @client.queue_name)
|
45
41
|
p queue
|
46
|
-
|
42
|
+
assert_equal 1, queue.reload.size
|
47
43
|
res = @client.messages.get()
|
48
44
|
p res
|
49
45
|
assert res["id"]
|
@@ -54,10 +50,10 @@ class IronMQTests < TestBase
|
|
54
50
|
puts "shouldn't be any more"
|
55
51
|
res = @client.messages.get()
|
56
52
|
p res
|
57
|
-
|
53
|
+
assert_nil res
|
58
54
|
|
59
55
|
queue = @client.queues.get(:name => @client.queue_name)
|
60
|
-
|
56
|
+
assert_equal 0, queue.size
|
61
57
|
|
62
58
|
res = @client.messages.post("hello world 2!")
|
63
59
|
p res
|
@@ -72,7 +68,7 @@ class IronMQTests < TestBase
|
|
72
68
|
puts "shouldn't be any more"
|
73
69
|
res = @client.messages.get()
|
74
70
|
p res
|
75
|
-
|
71
|
+
assert_nil res
|
76
72
|
|
77
73
|
|
78
74
|
# new style of referencing queue
|
@@ -86,14 +82,14 @@ class IronMQTests < TestBase
|
|
86
82
|
p res
|
87
83
|
assert res["id"]
|
88
84
|
assert res.id
|
89
|
-
|
85
|
+
assert_equal v, res.body
|
90
86
|
|
91
87
|
res = queue.delete(res.id)
|
92
88
|
p res
|
93
89
|
puts "shouldn't be any more"
|
94
90
|
res = queue.get()
|
95
91
|
p res
|
96
|
-
|
92
|
+
assert_nil res
|
97
93
|
|
98
94
|
# test delete by item
|
99
95
|
res = queue.post(v)
|
@@ -108,7 +104,7 @@ class IronMQTests < TestBase
|
|
108
104
|
puts "shouldn't be any more"
|
109
105
|
res = queue.get()
|
110
106
|
p res
|
111
|
-
|
107
|
+
assert_nil res
|
112
108
|
|
113
109
|
end
|
114
110
|
|
@@ -126,21 +122,21 @@ class IronMQTests < TestBase
|
|
126
122
|
|
127
123
|
msg4 = @client.messages.get()
|
128
124
|
p msg4
|
129
|
-
|
125
|
+
assert_nil msg4
|
130
126
|
|
131
127
|
puts 'sleeping 45 seconds...'
|
132
128
|
sleep 45
|
133
129
|
|
134
130
|
msg3 = @client.messages.get()
|
135
131
|
p msg3
|
136
|
-
|
132
|
+
assert_nil msg3
|
137
133
|
|
138
134
|
puts 'sleeping another 45 seconds...'
|
139
135
|
sleep 45
|
140
136
|
|
141
137
|
msg2 = @client.messages.get()
|
142
138
|
assert msg2
|
143
|
-
|
139
|
+
assert_equal msg2.id, msg.id
|
144
140
|
|
145
141
|
msg2.delete
|
146
142
|
|
@@ -152,12 +148,12 @@ class IronMQTests < TestBase
|
|
152
148
|
assert msg
|
153
149
|
msg4 = @client.messages.get()
|
154
150
|
p msg4
|
155
|
-
|
151
|
+
assert_nil msg4
|
156
152
|
puts 'sleeping 15 seconds...'
|
157
153
|
sleep 15
|
158
154
|
msg2 = @client.messages.get()
|
159
155
|
assert msg2
|
160
|
-
|
156
|
+
assert_equal msg2.id, msg.id
|
161
157
|
|
162
158
|
end
|
163
159
|
|
@@ -183,7 +179,7 @@ class IronMQTests < TestBase
|
|
183
179
|
res.each do |q|
|
184
180
|
p q.name
|
185
181
|
end
|
186
|
-
|
182
|
+
assert_equal 0, res.size
|
187
183
|
|
188
184
|
|
189
185
|
queue = @client.queue("test_basics_6")
|
@@ -202,7 +198,7 @@ class IronMQTests < TestBase
|
|
202
198
|
@client.messages.post(msgTxt, {:delay => 10})
|
203
199
|
msg = @client.messages.get
|
204
200
|
p msg
|
205
|
-
|
201
|
+
assert_nil msg
|
206
202
|
sleep 10
|
207
203
|
msg = @client.messages.get
|
208
204
|
p msg
|
@@ -221,7 +217,7 @@ class IronMQTests < TestBase
|
|
221
217
|
resp = @client.messages.post(x)
|
222
218
|
assert resp["ids"]
|
223
219
|
assert resp["ids"].is_a?(Array)
|
224
|
-
|
220
|
+
assert_equal 10, resp["ids"].size
|
225
221
|
|
226
222
|
msg = @client.messages.get()
|
227
223
|
assert msg
|
@@ -248,31 +244,31 @@ class IronMQTests < TestBase
|
|
248
244
|
puts "msg_id: #{msg_id}"
|
249
245
|
msg = @client.messages.get
|
250
246
|
p msg
|
251
|
-
|
247
|
+
assert_equal msg_id, msg.id
|
252
248
|
# Ok, so should have received same message, now let's release it quicker than the original timeout
|
253
249
|
|
254
250
|
# but first, ensure the next get is nil
|
255
251
|
msg = @client.messages.get
|
256
252
|
p msg
|
257
|
-
|
253
|
+
assert_nil msg
|
258
254
|
|
259
255
|
# now release it instantly
|
260
256
|
@client.messages.release(msg_id)
|
261
257
|
msg = @client.messages.get
|
262
258
|
p msg
|
263
259
|
assert msg
|
264
|
-
|
260
|
+
assert_equal msg_id, msg.id
|
265
261
|
|
266
262
|
# ok, so should be reserved again
|
267
263
|
msgr = @client.messages.get
|
268
264
|
p msgr
|
269
|
-
|
265
|
+
assert_nil msgr
|
270
266
|
|
271
267
|
# let's release it in 10 seconds
|
272
268
|
@client.messages.release(msg_id, :delay => 10)
|
273
269
|
msg = @client.messages.get
|
274
270
|
p msg
|
275
|
-
|
271
|
+
assert_nil msg
|
276
272
|
|
277
273
|
sleep 11
|
278
274
|
|
@@ -283,7 +279,7 @@ class IronMQTests < TestBase
|
|
283
279
|
msg.release(:delay => 5)
|
284
280
|
msg = @client.messages.get
|
285
281
|
p msg
|
286
|
-
|
282
|
+
assert_nil msg
|
287
283
|
|
288
284
|
sleep 6
|
289
285
|
|
@@ -301,16 +297,16 @@ class IronMQTests < TestBase
|
|
301
297
|
|
302
298
|
val = "hi mr clean"
|
303
299
|
q.post(val)
|
304
|
-
assert q.size == 1
|
305
300
|
|
306
|
-
|
307
|
-
|
308
|
-
assert msg.nil?
|
301
|
+
sleep 0.5 # make sure the counter has time to update
|
302
|
+
assert_equal 1, q.size
|
309
303
|
|
310
|
-
q.
|
304
|
+
q.clear
|
311
305
|
|
312
|
-
|
306
|
+
msg = q.get
|
307
|
+
assert_nil msg
|
313
308
|
|
309
|
+
assert_equal 0, q.reload.size
|
314
310
|
end
|
315
311
|
|
316
312
|
|
@@ -329,9 +325,10 @@ class IronMQTests < TestBase
|
|
329
325
|
assert msg.body.include?("hello")
|
330
326
|
i += 1
|
331
327
|
end
|
332
|
-
assert i == 5, "Polled #{i} messages, but there should have only been five messages in queue. "
|
333
328
|
|
334
|
-
|
329
|
+
assert_equal 5, i
|
330
|
+
|
331
|
+
assert_equal 0, queue.reload.size
|
335
332
|
|
336
333
|
end
|
337
334
|
#
|
data/test/tmp.rb
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
# Put config.yml file in ~/Dropbox/configs/ironmq_gem/test/config.yml
|
2
|
-
|
3
|
-
#$abt_config = {:hello=>'abt_config_ya'}
|
4
|
-
|
5
1
|
gem 'test-unit'
|
6
2
|
require 'test/unit'
|
7
3
|
require 'yaml'
|
@@ -11,6 +7,39 @@ class IronMQTests < TestBase
|
|
11
7
|
def setup
|
12
8
|
super
|
13
9
|
|
10
|
+
@queue_name = "fixed_num2_migration"
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_put_x
|
15
|
+
q = @client.queue(@queue_name)
|
16
|
+
1000.times do |i|
|
17
|
+
puts "#{i}"
|
18
|
+
q.post("msg #{i}")
|
19
|
+
end
|
20
|
+
p q.reload.size
|
21
|
+
assert_equal 1800, q.size
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_get_x
|
25
|
+
#q = @client.queue(@queue_name)
|
26
|
+
#puts "q.size: #{q.size}"
|
27
|
+
#100.times do |i|
|
28
|
+
# puts "#{i}"
|
29
|
+
# msg = q.get
|
30
|
+
# msg.delete
|
31
|
+
#end
|
32
|
+
#p q.reload.size
|
33
|
+
#assert_equal 900, q.reload.size
|
14
34
|
end
|
35
|
+
#
|
36
|
+
#def test_poll_all
|
37
|
+
# q = @client.queue(@queue_name)
|
38
|
+
# puts "q.size: #{q.size}"
|
39
|
+
# q.poll do |msg|
|
40
|
+
# p msg
|
41
|
+
# end
|
42
|
+
# p queue.reload.size
|
43
|
+
#end
|
15
44
|
|
16
45
|
end
|
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: 2.1.
|
4
|
+
version: 2.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: iron_core
|