hutch-schedule 0.4.1 → 0.4.2
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/active_job/queue_adapters/hutch_adapter.rb +21 -12
- data/lib/hutch/schedule/version.rb +1 -1
- 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: 93a7154c024537201d32af0ad6d88c5b2a44e7cb
|
4
|
+
data.tar.gz: 61a4bf23ad9d4cdb31e6c3cd9ecf18a174a47196
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7ae43fbac466b5a439e8d09c297913cfb6f170147bbab7dc9e767e6f3a0b43c1a32c730d24326938aaa9630a0ca18b5e09a094b396855646c78879dd8082515
|
7
|
+
data.tar.gz: ef62aa365fa12551114e2949d547b03b44d22640cde958a902b058de42371d4b2a4ddc2c96da4bf491fc0f4489c731bbfe7cfb3ca463fddf83ac324413f6627f
|
@@ -43,27 +43,36 @@ module ActiveJob
|
|
43
43
|
|
44
44
|
# Register all ActiveJob Class to Hutch. (per queue per consumer)
|
45
45
|
def self.register_actice_job_classes
|
46
|
+
queue_consumers = {}
|
47
|
+
|
46
48
|
Dir.glob(Rails.root.join('app/jobs/**/*.rb')).each { |x| require_dependency x }
|
47
49
|
ActiveJob::Base.descendants.each do |job_clazz|
|
48
50
|
# Need activeJob instance #queue_name
|
49
51
|
job = job_clazz.new
|
52
|
+
# Multi queue only have one consumer
|
53
|
+
next if queue_consumers.key?(job.queue_name)
|
54
|
+
queue_consumers[job.queue_name] = HutchAdapter.dynamic_consumer(job)
|
55
|
+
Hutch.consumers << queue_consumers[job.queue_name]
|
56
|
+
end
|
57
|
+
end
|
50
58
|
|
51
|
-
|
52
|
-
|
59
|
+
private
|
60
|
+
def self.dynamic_consumer(job_instance)
|
61
|
+
Class.new do
|
62
|
+
extend Hutch::Consumer::ClassMethods
|
53
63
|
|
54
|
-
|
64
|
+
attr_accessor :broker, :delivery_info
|
55
65
|
|
56
|
-
|
57
|
-
|
66
|
+
queue_name job_instance.queue_name
|
67
|
+
consume HutchAdapter.routing_key(job_instance)
|
58
68
|
|
59
|
-
|
60
|
-
|
61
|
-
|
69
|
+
define_method :process do |job_data|
|
70
|
+
ActiveJob::Base.execute(job_data)
|
71
|
+
end
|
62
72
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
end
|
73
|
+
# inspect name
|
74
|
+
define_method :inspect do
|
75
|
+
"#{job_instance.queue_name}-anonymous-consumer"
|
67
76
|
end
|
68
77
|
end
|
69
78
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hutch-schedule
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wyatt pan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hutch
|