hutch-schedule 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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