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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 017cf3ee159d681930ba0d186c16a399e4e85670
4
- data.tar.gz: d6d4e994d59cbf59a8f5bbba7f2b1f1f919d337c
3
+ metadata.gz: 93a7154c024537201d32af0ad6d88c5b2a44e7cb
4
+ data.tar.gz: 61a4bf23ad9d4cdb31e6c3cd9ecf18a174a47196
5
5
  SHA512:
6
- metadata.gz: 9b2b50b92599783f09a0614d6ecdfac2faedd9659a5313f232323cda171629ecd29ca6afcb6132669eb1d2e8dc2f74a607f39ca0c7b71c2c4ff8f0fe377d5513
7
- data.tar.gz: 5115ed16a48f1e5f74ee71a2f3c45c2dee3f23c8720f88b5d03a3da207de3d9117b78df745e975f370d8cd5c6b7367941953191d90ff7e2a1a05f09a5345dbe4
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
- Hutch.consumers << Class.new do
52
- extend Hutch::Consumer::ClassMethods
59
+ private
60
+ def self.dynamic_consumer(job_instance)
61
+ Class.new do
62
+ extend Hutch::Consumer::ClassMethods
53
63
 
54
- attr_accessor :broker, :delivery_info
64
+ attr_accessor :broker, :delivery_info
55
65
 
56
- queue_name job.queue_name
57
- consume HutchAdapter.routing_key(job)
66
+ queue_name job_instance.queue_name
67
+ consume HutchAdapter.routing_key(job_instance)
58
68
 
59
- define_method :process do |job_data|
60
- ActiveJob::Base.execute(job_data)
61
- end
69
+ define_method :process do |job_data|
70
+ ActiveJob::Base.execute(job_data)
71
+ end
62
72
 
63
- # inspect name
64
- define_method :inspect do
65
- "#{job_clazz.queue_name}-anonymous-consumer"
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
@@ -1,5 +1,5 @@
1
1
  module Hutch
2
2
  module Schedule
3
- VERSION = "0.4.1"
3
+ VERSION = "0.4.2"
4
4
  end
5
5
  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.1
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-22 00:00:00.000000000 Z
11
+ date: 2017-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hutch