asynchronic 1.0.0 → 1.1.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.
- checksums.yaml +4 -4
- data/lib/asynchronic/process.rb +6 -2
- data/lib/asynchronic/version.rb +1 -1
- data/spec/jobs.rb +21 -0
- data/spec/process/life_cycle_examples.rb +45 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e646437579de28c6832604a206c25454a26ce1e8
|
4
|
+
data.tar.gz: 8b72d178ea9f74359ab02b97c8212a5527ffa8cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d0b532a8be503af8223bb9884895166ccb114ec61c7fa01013775456300d66e2d302d09ceb518adf4ff880e2431030ed6e52bedb6489487aa1322031587fbb4
|
7
|
+
data.tar.gz: eed82387721af34efa9db5dd459068272042ff9cd73d0a57e4e541d2f0fca55189dc4ae20893e916201f66098b45224eb7600d269a9fea8fe6e5ba70701bf9dd
|
data/lib/asynchronic/process.rb
CHANGED
@@ -74,7 +74,7 @@ module Asynchronic
|
|
74
74
|
|
75
75
|
def enqueue
|
76
76
|
queued!
|
77
|
-
environment.enqueue id, queue
|
77
|
+
environment.enqueue id, queue
|
78
78
|
end
|
79
79
|
|
80
80
|
def execute
|
@@ -112,7 +112,7 @@ module Asynchronic
|
|
112
112
|
new(environment, id) do
|
113
113
|
self.type = type
|
114
114
|
self.name = params.delete(:alias) || type
|
115
|
-
self.queue = params.delete
|
115
|
+
self.queue = params.delete(:queue) || type.queue || parent_queue
|
116
116
|
self.dependencies = Array(params.delete(:dependencies)) | Array(params.delete(:dependency)) | infer_dependencies(params)
|
117
117
|
self.params = params
|
118
118
|
pending!
|
@@ -180,5 +180,9 @@ module Asynchronic
|
|
180
180
|
.map { |v| Process.new(environment, v.data_store.scope).name }
|
181
181
|
end
|
182
182
|
|
183
|
+
def parent_queue
|
184
|
+
parent.queue if parent
|
185
|
+
end
|
186
|
+
|
183
187
|
end
|
184
188
|
end
|
data/lib/asynchronic/version.rb
CHANGED
data/spec/jobs.rb
CHANGED
@@ -204,4 +204,25 @@ class WithRetriesJob < Asynchronic::Job
|
|
204
204
|
@counter
|
205
205
|
end
|
206
206
|
end
|
207
|
+
end
|
208
|
+
|
209
|
+
class NestedJobWithDifferentsQueues < Asynchronic::Job
|
210
|
+
def call
|
211
|
+
async Level1, input: params[:input]
|
212
|
+
result Level1
|
213
|
+
end
|
214
|
+
|
215
|
+
class Level1 < Asynchronic::Job
|
216
|
+
queue :other_queue
|
217
|
+
def call
|
218
|
+
async Level2, input: params[:input] + 1
|
219
|
+
result Level2
|
220
|
+
end
|
221
|
+
|
222
|
+
class Level2 < Asynchronic::Job
|
223
|
+
def call
|
224
|
+
params[:input] + 1
|
225
|
+
end
|
226
|
+
end
|
227
|
+
end
|
207
228
|
end
|
@@ -401,4 +401,49 @@ module LifeCycleExamples
|
|
401
401
|
queue.must_be_empty
|
402
402
|
end
|
403
403
|
|
404
|
+
it 'Inheritance of queues in processes. Use default queue' do
|
405
|
+
process = create NestedJob, input: 100
|
406
|
+
|
407
|
+
process.queue.must_be_nil
|
408
|
+
|
409
|
+
process.enqueue
|
410
|
+
execute queue
|
411
|
+
|
412
|
+
process.processes.first.queue.must_be_nil
|
413
|
+
execute queue
|
414
|
+
|
415
|
+
process.processes.first.processes.first.queue.must_be_nil
|
416
|
+
execute queue
|
417
|
+
end
|
418
|
+
|
419
|
+
it 'Inheritance of queues in processes. Specify queue in params' do
|
420
|
+
process = create NestedJob, {input: 100, queue: :test_queue}
|
421
|
+
|
422
|
+
process.queue.must_equal :test_queue
|
423
|
+
|
424
|
+
process.enqueue
|
425
|
+
execute queue_engine[:test_queue]
|
426
|
+
|
427
|
+
process.processes.first.queue.must_equal :test_queue
|
428
|
+
execute queue_engine[:test_queue]
|
429
|
+
|
430
|
+
process.processes.first.processes.first.queue.must_equal :test_queue
|
431
|
+
execute queue_engine[:test_queue]
|
432
|
+
end
|
433
|
+
|
434
|
+
it 'Inheritance of queues in processes. Redefine queue in job class' do
|
435
|
+
process = create NestedJobWithDifferentsQueues, {input: 100, queue: :test_queue}
|
436
|
+
|
437
|
+
process.queue.must_equal :test_queue
|
438
|
+
|
439
|
+
process.enqueue
|
440
|
+
execute queue_engine[:test_queue]
|
441
|
+
|
442
|
+
process.processes.first.queue.must_equal :other_queue
|
443
|
+
execute queue_engine[:other_queue]
|
444
|
+
|
445
|
+
process.processes.first.processes.first.queue.must_equal :other_queue
|
446
|
+
execute queue_engine[:other_queue]
|
447
|
+
end
|
448
|
+
|
404
449
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asynchronic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gabriel Naiman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|