hutch-schedule 0.4.2 → 0.4.4
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/CHANGELOG.md +17 -0
- data/lib/active_job/queue_adapters/hutch_adapter.rb +9 -4
- data/lib/hutch/schedule.rb +3 -3
- data/lib/hutch/schedule/core.rb +0 -2
- data/lib/hutch/schedule/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7d6b5d5d9762d162619d53eccc098a2a3653ba1
|
4
|
+
data.tar.gz: 1b0429efd64d15707587387e786d5f0b59c11b77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6216f7715530d9bfb291cb752c4804cccd72857611d41c32d00dbb25a1655b4681a92c0b1cd6545e0bbfcc69bf0f07436b437b936bf2046b0740ec10a9134c8
|
7
|
+
data.tar.gz: d76aa10fd7819f7cbd7765343f036c01dbbca0a05709e6581af049a4876c1ac3096d033cd70679c9f1d8d2538d0d73ccde36e7f045afbf8fd71c11987c9cc1b9
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# Change Log
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
## [0.4.2] - 2017-05-23
|
5
|
+
### Fixed
|
6
|
+
- Reuse consumer when register ActiveJob queue to consumer
|
7
|
+
|
8
|
+
|
9
|
+
## [0.4.1] - 2017-05-22
|
10
|
+
### Fixed
|
11
|
+
- When register ActiveJob queue consumer, use job instance #queue_name not job class queue_name
|
12
|
+
|
13
|
+
## [0.4.0] - 2017-05-21
|
14
|
+
### Fixed
|
15
|
+
- Fix Hutch::ErrorsHandler::MaxRetry use Set#intersect? instead of Array#include? to
|
16
|
+
calculate routing_key diff and aggregate message faild times.
|
17
|
+
|
@@ -43,6 +43,7 @@ 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
|
+
# TODO: 需要考虑如何将 AJ 的 Proc queue_name 动态注册到 Hutch
|
46
47
|
queue_consumers = {}
|
47
48
|
|
48
49
|
Dir.glob(Rails.root.join('app/jobs/**/*.rb')).each { |x| require_dependency x }
|
@@ -52,7 +53,7 @@ module ActiveJob
|
|
52
53
|
# Multi queue only have one consumer
|
53
54
|
next if queue_consumers.key?(job.queue_name)
|
54
55
|
queue_consumers[job.queue_name] = HutchAdapter.dynamic_consumer(job)
|
55
|
-
Hutch.
|
56
|
+
Hutch.register_consumer(queue_consumers[job.queue_name])
|
56
57
|
end
|
57
58
|
end
|
58
59
|
|
@@ -66,13 +67,17 @@ module ActiveJob
|
|
66
67
|
queue_name job_instance.queue_name
|
67
68
|
consume HutchAdapter.routing_key(job_instance)
|
68
69
|
|
69
|
-
|
70
|
+
def process(job_data)
|
70
71
|
ActiveJob::Base.execute(job_data)
|
71
72
|
end
|
72
73
|
|
74
|
+
define_singleton_method :name do
|
75
|
+
"#{job_instance.queue_name}_dynamic_consumer".camelize
|
76
|
+
end
|
77
|
+
|
73
78
|
# inspect name
|
74
|
-
|
75
|
-
"#{job_instance.queue_name}
|
79
|
+
define_singleton_method :inspect do
|
80
|
+
"#{job_instance.queue_name}_dynamic_consumer".camelize
|
76
81
|
end
|
77
82
|
end
|
78
83
|
end
|
data/lib/hutch/schedule.rb
CHANGED
@@ -16,10 +16,10 @@ module Hutch
|
|
16
16
|
# and then just use like Hutch to publish message `Hutch::Schedule.publish`
|
17
17
|
module Schedule
|
18
18
|
|
19
|
-
def self.connect
|
20
|
-
raise "Please invoke Hutch.connect before Hutch::Schedule.connect, Hutch::Schedule need Hutch.broker" unless Hutch.connected?
|
19
|
+
def self.connect
|
21
20
|
return if core.present?
|
22
|
-
|
21
|
+
Hutch.connect unless Hutch.connected?
|
22
|
+
@core = Hutch::Schedule::Core.new(Hutch.broker)
|
23
23
|
@core.connect!
|
24
24
|
ActiveJob::QueueAdapters::HutchAdapter.register_actice_job_classes if defined?(ActiveJob::QueueAdapters::HutchAdapter)
|
25
25
|
end
|
data/lib/hutch/schedule/core.rb
CHANGED
@@ -39,7 +39,6 @@ module Hutch
|
|
39
39
|
|
40
40
|
def declare_exchange(ch = channel)
|
41
41
|
exchange_name = "#{config[:mq_exchange]}.schedule"
|
42
|
-
# TODO: Check mq_exchange_options info, ensure they won`t override x-dead-letter-exchange params
|
43
42
|
exchange_options = { durable: true }.merge(config[:mq_exchange_options])
|
44
43
|
logger.info "using topic exchange(schedule) '#{exchange_name}'"
|
45
44
|
|
@@ -54,7 +53,6 @@ module Hutch
|
|
54
53
|
props = { 'x-message-ttl': 30.days.in_milliseconds, 'x-dead-letter-exchange': config[:mq_exchange] }
|
55
54
|
queue = broker.queue("#{config[:mq_exchange]}_schedule_queue", props)
|
56
55
|
|
57
|
-
# TODO: consider extract this routing_key params to config params
|
58
56
|
# routing all to this queue
|
59
57
|
queue.unbind(exchange, routing_key: '#')
|
60
58
|
queue.bind(exchange, routing_key: '#')
|
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.4
|
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-
|
11
|
+
date: 2017-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hutch
|
@@ -119,6 +119,7 @@ files:
|
|
119
119
|
- ".rspec"
|
120
120
|
- ".rubocop.yml"
|
121
121
|
- ".travis.yml"
|
122
|
+
- CHANGELOG.md
|
122
123
|
- CODE_OF_CONDUCT.md
|
123
124
|
- Gemfile
|
124
125
|
- LICENSE.txt
|