qs 0.3.0 → 0.4.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/bench/config.qs +4 -27
- data/bench/dispatcher.qs +24 -0
- data/bench/report.rb +80 -10
- data/bench/report.txt +10 -3
- data/bench/setup.rb +55 -0
- data/lib/qs.rb +75 -15
- data/lib/qs/client.rb +73 -22
- data/lib/qs/daemon.rb +21 -21
- data/lib/qs/daemon_data.rb +4 -4
- data/lib/qs/dispatch_job.rb +36 -0
- data/lib/qs/dispatch_job_handler.rb +79 -0
- data/lib/qs/dispatcher_queue.rb +19 -0
- data/lib/qs/error_handler.rb +12 -12
- data/lib/qs/event.rb +82 -0
- data/lib/qs/event_handler.rb +34 -0
- data/lib/qs/event_handler_test_helpers.rb +17 -0
- data/lib/qs/job.rb +19 -31
- data/lib/qs/job_handler.rb +6 -63
- data/lib/qs/{test_helpers.rb → job_handler_test_helpers.rb} +2 -2
- data/lib/qs/message.rb +29 -0
- data/lib/qs/message_handler.rb +84 -0
- data/lib/qs/payload.rb +98 -0
- data/lib/qs/payload_handler.rb +106 -54
- data/lib/qs/queue.rb +39 -6
- data/lib/qs/queue_item.rb +33 -0
- data/lib/qs/route.rb +7 -7
- data/lib/qs/runner.rb +6 -5
- data/lib/qs/test_runner.rb +41 -13
- data/lib/qs/version.rb +1 -1
- data/qs.gemspec +1 -1
- data/test/helper.rb +1 -1
- data/test/support/app_daemon.rb +77 -11
- data/test/support/factory.rb +34 -0
- data/test/system/daemon_tests.rb +146 -77
- data/test/system/queue_tests.rb +87 -0
- data/test/unit/client_tests.rb +184 -45
- data/test/unit/daemon_data_tests.rb +4 -4
- data/test/unit/daemon_tests.rb +32 -32
- data/test/unit/dispatch_job_handler_tests.rb +163 -0
- data/test/unit/dispatch_job_tests.rb +75 -0
- data/test/unit/dispatcher_queue_tests.rb +42 -0
- data/test/unit/error_handler_tests.rb +9 -9
- data/test/unit/event_handler_test_helpers_tests.rb +55 -0
- data/test/unit/event_handler_tests.rb +63 -0
- data/test/unit/event_tests.rb +162 -0
- data/test/unit/{test_helper_tests.rb → job_handler_test_helper_tests.rb} +13 -19
- data/test/unit/job_handler_tests.rb +17 -210
- data/test/unit/job_tests.rb +49 -79
- data/test/unit/message_handler_tests.rb +235 -0
- data/test/unit/message_tests.rb +64 -0
- data/test/unit/payload_handler_tests.rb +285 -86
- data/test/unit/payload_tests.rb +139 -0
- data/test/unit/qs_runner_tests.rb +6 -6
- data/test/unit/qs_tests.rb +167 -28
- data/test/unit/queue_item_tests.rb +51 -0
- data/test/unit/queue_tests.rb +126 -18
- data/test/unit/route_tests.rb +12 -13
- data/test/unit/runner_tests.rb +10 -10
- data/test/unit/test_runner_tests.rb +117 -24
- metadata +51 -21
- data/bench/queue.rb +0 -8
- data/lib/qs/redis_item.rb +0 -33
- data/test/unit/redis_item_tests.rb +0 -49
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 4
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kelly Redding
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2015-
|
19
|
+
date: 2015-08-04 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
@@ -29,9 +29,9 @@ dependencies:
|
|
29
29
|
- 0
|
30
30
|
- 5
|
31
31
|
version: "0.5"
|
32
|
-
version_requirements: *id001
|
33
32
|
type: :runtime
|
34
33
|
name: dat-worker-pool
|
34
|
+
version_requirements: *id001
|
35
35
|
prerelease: false
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
requirement: &id002 !ruby/object:Gem::Requirement
|
@@ -39,14 +39,14 @@ dependencies:
|
|
39
39
|
requirements:
|
40
40
|
- - ~>
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
hash:
|
42
|
+
hash: 13
|
43
43
|
segments:
|
44
44
|
- 0
|
45
|
-
-
|
46
|
-
version: "0.
|
47
|
-
version_requirements: *id002
|
45
|
+
- 3
|
46
|
+
version: "0.3"
|
48
47
|
type: :runtime
|
49
48
|
name: hella-redis
|
49
|
+
version_requirements: *id002
|
50
50
|
prerelease: false
|
51
51
|
- !ruby/object:Gem::Dependency
|
52
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
@@ -59,9 +59,9 @@ dependencies:
|
|
59
59
|
- 1
|
60
60
|
- 1
|
61
61
|
version: "1.1"
|
62
|
-
version_requirements: *id003
|
63
62
|
type: :runtime
|
64
63
|
name: ns-options
|
64
|
+
version_requirements: *id003
|
65
65
|
prerelease: false
|
66
66
|
- !ruby/object:Gem::Dependency
|
67
67
|
requirement: &id004 !ruby/object:Gem::Requirement
|
@@ -74,9 +74,9 @@ dependencies:
|
|
74
74
|
- 1
|
75
75
|
- 2
|
76
76
|
version: "1.2"
|
77
|
-
version_requirements: *id004
|
78
77
|
type: :runtime
|
79
78
|
name: SystemTimer
|
79
|
+
version_requirements: *id004
|
80
80
|
prerelease: false
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
requirement: &id005 !ruby/object:Gem::Requirement
|
@@ -89,9 +89,9 @@ dependencies:
|
|
89
89
|
- 2
|
90
90
|
- 14
|
91
91
|
version: "2.14"
|
92
|
-
version_requirements: *id005
|
93
92
|
type: :development
|
94
93
|
name: assert
|
94
|
+
version_requirements: *id005
|
95
95
|
prerelease: false
|
96
96
|
- !ruby/object:Gem::Dependency
|
97
97
|
requirement: &id006 !ruby/object:Gem::Requirement
|
@@ -104,9 +104,9 @@ dependencies:
|
|
104
104
|
- 2
|
105
105
|
- 3
|
106
106
|
version: "2.3"
|
107
|
-
version_requirements: *id006
|
108
107
|
type: :development
|
109
108
|
name: scmd
|
109
|
+
version_requirements: *id006
|
110
110
|
prerelease: false
|
111
111
|
description: Define message queues. Process jobs and events. Profit.
|
112
112
|
email:
|
@@ -125,9 +125,10 @@ files:
|
|
125
125
|
- README.md
|
126
126
|
- Rakefile
|
127
127
|
- bench/config.qs
|
128
|
-
- bench/
|
128
|
+
- bench/dispatcher.qs
|
129
129
|
- bench/report.rb
|
130
130
|
- bench/report.txt
|
131
|
+
- bench/setup.rb
|
131
132
|
- bin/qs
|
132
133
|
- lib/qs.rb
|
133
134
|
- lib/qs/cli.rb
|
@@ -135,21 +136,30 @@ files:
|
|
135
136
|
- lib/qs/config_file.rb
|
136
137
|
- lib/qs/daemon.rb
|
137
138
|
- lib/qs/daemon_data.rb
|
139
|
+
- lib/qs/dispatch_job.rb
|
140
|
+
- lib/qs/dispatch_job_handler.rb
|
141
|
+
- lib/qs/dispatcher_queue.rb
|
138
142
|
- lib/qs/error_handler.rb
|
143
|
+
- lib/qs/event.rb
|
144
|
+
- lib/qs/event_handler.rb
|
145
|
+
- lib/qs/event_handler_test_helpers.rb
|
139
146
|
- lib/qs/io_pipe.rb
|
140
147
|
- lib/qs/job.rb
|
141
148
|
- lib/qs/job_handler.rb
|
149
|
+
- lib/qs/job_handler_test_helpers.rb
|
142
150
|
- lib/qs/logger.rb
|
151
|
+
- lib/qs/message.rb
|
152
|
+
- lib/qs/message_handler.rb
|
153
|
+
- lib/qs/payload.rb
|
143
154
|
- lib/qs/payload_handler.rb
|
144
155
|
- lib/qs/pid_file.rb
|
145
156
|
- lib/qs/process.rb
|
146
157
|
- lib/qs/process_signal.rb
|
147
158
|
- lib/qs/qs_runner.rb
|
148
159
|
- lib/qs/queue.rb
|
149
|
-
- lib/qs/
|
160
|
+
- lib/qs/queue_item.rb
|
150
161
|
- lib/qs/route.rb
|
151
162
|
- lib/qs/runner.rb
|
152
|
-
- lib/qs/test_helpers.rb
|
153
163
|
- lib/qs/test_runner.rb
|
154
164
|
- lib/qs/version.rb
|
155
165
|
- log/.gitkeep
|
@@ -166,27 +176,37 @@ files:
|
|
166
176
|
- test/support/pid_file_spy.rb
|
167
177
|
- test/support/runner_spy.rb
|
168
178
|
- test/system/daemon_tests.rb
|
179
|
+
- test/system/queue_tests.rb
|
169
180
|
- test/unit/cli_tests.rb
|
170
181
|
- test/unit/client_tests.rb
|
171
182
|
- test/unit/config_file_tests.rb
|
172
183
|
- test/unit/daemon_data_tests.rb
|
173
184
|
- test/unit/daemon_tests.rb
|
185
|
+
- test/unit/dispatch_job_handler_tests.rb
|
186
|
+
- test/unit/dispatch_job_tests.rb
|
187
|
+
- test/unit/dispatcher_queue_tests.rb
|
174
188
|
- test/unit/error_handler_tests.rb
|
189
|
+
- test/unit/event_handler_test_helpers_tests.rb
|
190
|
+
- test/unit/event_handler_tests.rb
|
191
|
+
- test/unit/event_tests.rb
|
175
192
|
- test/unit/io_pipe_tests.rb
|
193
|
+
- test/unit/job_handler_test_helper_tests.rb
|
176
194
|
- test/unit/job_handler_tests.rb
|
177
195
|
- test/unit/job_tests.rb
|
178
196
|
- test/unit/logger_tests.rb
|
197
|
+
- test/unit/message_handler_tests.rb
|
198
|
+
- test/unit/message_tests.rb
|
179
199
|
- test/unit/payload_handler_tests.rb
|
200
|
+
- test/unit/payload_tests.rb
|
180
201
|
- test/unit/pid_file_tests.rb
|
181
202
|
- test/unit/process_signal_tests.rb
|
182
203
|
- test/unit/process_tests.rb
|
183
204
|
- test/unit/qs_runner_tests.rb
|
184
205
|
- test/unit/qs_tests.rb
|
206
|
+
- test/unit/queue_item_tests.rb
|
185
207
|
- test/unit/queue_tests.rb
|
186
|
-
- test/unit/redis_item_tests.rb
|
187
208
|
- test/unit/route_tests.rb
|
188
209
|
- test/unit/runner_tests.rb
|
189
|
-
- test/unit/test_helper_tests.rb
|
190
210
|
- test/unit/test_runner_tests.rb
|
191
211
|
- tmp/.gitkeep
|
192
212
|
homepage: http://github.com/redding/qs
|
@@ -218,7 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
238
|
requirements: []
|
219
239
|
|
220
240
|
rubyforge_project:
|
221
|
-
rubygems_version: 1.8.
|
241
|
+
rubygems_version: 1.8.25
|
222
242
|
signing_key:
|
223
243
|
specification_version: 3
|
224
244
|
summary: Define message queues. Process jobs and events. Profit.
|
@@ -235,25 +255,35 @@ test_files:
|
|
235
255
|
- test/support/pid_file_spy.rb
|
236
256
|
- test/support/runner_spy.rb
|
237
257
|
- test/system/daemon_tests.rb
|
258
|
+
- test/system/queue_tests.rb
|
238
259
|
- test/unit/cli_tests.rb
|
239
260
|
- test/unit/client_tests.rb
|
240
261
|
- test/unit/config_file_tests.rb
|
241
262
|
- test/unit/daemon_data_tests.rb
|
242
263
|
- test/unit/daemon_tests.rb
|
264
|
+
- test/unit/dispatch_job_handler_tests.rb
|
265
|
+
- test/unit/dispatch_job_tests.rb
|
266
|
+
- test/unit/dispatcher_queue_tests.rb
|
243
267
|
- test/unit/error_handler_tests.rb
|
268
|
+
- test/unit/event_handler_test_helpers_tests.rb
|
269
|
+
- test/unit/event_handler_tests.rb
|
270
|
+
- test/unit/event_tests.rb
|
244
271
|
- test/unit/io_pipe_tests.rb
|
272
|
+
- test/unit/job_handler_test_helper_tests.rb
|
245
273
|
- test/unit/job_handler_tests.rb
|
246
274
|
- test/unit/job_tests.rb
|
247
275
|
- test/unit/logger_tests.rb
|
276
|
+
- test/unit/message_handler_tests.rb
|
277
|
+
- test/unit/message_tests.rb
|
248
278
|
- test/unit/payload_handler_tests.rb
|
279
|
+
- test/unit/payload_tests.rb
|
249
280
|
- test/unit/pid_file_tests.rb
|
250
281
|
- test/unit/process_signal_tests.rb
|
251
282
|
- test/unit/process_tests.rb
|
252
283
|
- test/unit/qs_runner_tests.rb
|
253
284
|
- test/unit/qs_tests.rb
|
285
|
+
- test/unit/queue_item_tests.rb
|
254
286
|
- test/unit/queue_tests.rb
|
255
|
-
- test/unit/redis_item_tests.rb
|
256
287
|
- test/unit/route_tests.rb
|
257
288
|
- test/unit/runner_tests.rb
|
258
|
-
- test/unit/test_helper_tests.rb
|
259
289
|
- test/unit/test_runner_tests.rb
|
data/bench/queue.rb
DELETED
data/lib/qs/redis_item.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
module Qs
|
2
|
-
|
3
|
-
class RedisItem
|
4
|
-
|
5
|
-
attr_reader :queue_redis_key, :serialized_payload
|
6
|
-
attr_accessor :started, :finished
|
7
|
-
attr_accessor :job, :handler_class
|
8
|
-
attr_accessor :exception, :time_taken
|
9
|
-
|
10
|
-
def initialize(queue_redis_key, serialized_payload)
|
11
|
-
@queue_redis_key = queue_redis_key
|
12
|
-
@serialized_payload = serialized_payload
|
13
|
-
@started = false
|
14
|
-
@finished = false
|
15
|
-
|
16
|
-
@job = nil
|
17
|
-
@handler_class = nil
|
18
|
-
@exception = nil
|
19
|
-
@time_taken = nil
|
20
|
-
end
|
21
|
-
|
22
|
-
def ==(other)
|
23
|
-
if other.kind_of?(self.class)
|
24
|
-
self.queue_redis_key == other.queue_redis_key &&
|
25
|
-
self.serialized_payload == other.serialized_payload
|
26
|
-
else
|
27
|
-
super
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
require 'assert'
|
2
|
-
require 'qs/redis_item'
|
3
|
-
|
4
|
-
class Qs::RedisItem
|
5
|
-
|
6
|
-
class UnitTests < Assert::Context
|
7
|
-
desc "Qs::RedisItem"
|
8
|
-
setup do
|
9
|
-
@queue_redis_key = Factory.string
|
10
|
-
@serialized_payload = Factory.string
|
11
|
-
@redis_item = Qs::RedisItem.new(@queue_redis_key, @serialized_payload)
|
12
|
-
end
|
13
|
-
subject{ @redis_item }
|
14
|
-
|
15
|
-
should have_readers :queue_redis_key, :serialized_payload
|
16
|
-
should have_accessors :started, :finished
|
17
|
-
should have_accessors :job, :handler_class
|
18
|
-
should have_accessors :exception, :time_taken
|
19
|
-
|
20
|
-
should "know its queue redis key and serialized payload" do
|
21
|
-
assert_equal @queue_redis_key, subject.queue_redis_key
|
22
|
-
assert_equal @serialized_payload, subject.serialized_payload
|
23
|
-
end
|
24
|
-
|
25
|
-
should "defaults its other attributes" do
|
26
|
-
assert_false subject.started
|
27
|
-
assert_false subject.finished
|
28
|
-
|
29
|
-
assert_nil subject.job
|
30
|
-
assert_nil subject.handler_class
|
31
|
-
assert_nil subject.exception
|
32
|
-
assert_nil subject.time_taken
|
33
|
-
end
|
34
|
-
|
35
|
-
should "know if it equals another item" do
|
36
|
-
exp = Qs::RedisItem.new(@queue_redis_key, @serialized_payload)
|
37
|
-
assert_equal exp, subject
|
38
|
-
|
39
|
-
redis_key = Qs::Queue::RedisKey.new(Factory.string)
|
40
|
-
exp = Qs::RedisItem.new(redis_key, @serialized_payload)
|
41
|
-
assert_not_equal exp, subject
|
42
|
-
|
43
|
-
exp = Qs::RedisItem.new(@queue_redis_key, Factory.string)
|
44
|
-
assert_not_equal exp, subject
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
end
|