emittance-resque 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/Gemfile.lock +5 -5
- data/emittance-resque.gemspec +1 -1
- data/lib/emittance/resque/dispatcher.rb +5 -12
- data/lib/emittance/resque/event_fanout_job.rb +55 -0
- data/lib/emittance/resque/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa7e46cd8958a963475c19ff1c97d910b37b52d0
|
4
|
+
data.tar.gz: 8de5573d208daaa25bfc1bae93d884b03eeac82c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1afa519c7015e79c3402f54d34a4f20f5acbda9dd1df2ec4f67c2b681066b8fb73b16690fa2f40b8b5b6f078b5efb7b4922dbd08fa4de49cc8bd2983e6b62643
|
7
|
+
data.tar.gz: d79ccc04ca1d6314765c99179ff50526c27516bb2eac515e22d740a875e5f505f755551e28177b5bcc129e6dc282403a25b359903e3c5d66883cd0601fb48bff
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
emittance-resque (1.
|
5
|
-
emittance (~> 1.
|
4
|
+
emittance-resque (1.1.0)
|
5
|
+
emittance (~> 1.1)
|
6
6
|
resque
|
7
7
|
|
8
8
|
GEM
|
@@ -24,12 +24,12 @@ GEM
|
|
24
24
|
concurrent-ruby (1.0.5)
|
25
25
|
diff-lcs (1.3)
|
26
26
|
docile (1.1.5)
|
27
|
-
emittance (1.
|
27
|
+
emittance (1.1.0)
|
28
28
|
i18n (0.9.1)
|
29
29
|
concurrent-ruby (~> 1.0)
|
30
30
|
json (2.1.0)
|
31
31
|
method_source (0.9.0)
|
32
|
-
minitest (5.
|
32
|
+
minitest (5.11.1)
|
33
33
|
mono_logger (1.1.0)
|
34
34
|
multi_json (1.13.1)
|
35
35
|
mustermann (1.0.1)
|
@@ -53,7 +53,7 @@ GEM
|
|
53
53
|
rspec-core (~> 3.7.0)
|
54
54
|
rspec-expectations (~> 3.7.0)
|
55
55
|
rspec-mocks (~> 3.7.0)
|
56
|
-
rspec-core (3.7.
|
56
|
+
rspec-core (3.7.1)
|
57
57
|
rspec-support (~> 3.7.0)
|
58
58
|
rspec-expectations (3.7.0)
|
59
59
|
diff-lcs (>= 1.2.0, < 2.0)
|
data/emittance-resque.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ['lib']
|
24
24
|
|
25
|
-
spec.add_dependency 'emittance', '~> 1.
|
25
|
+
spec.add_dependency 'emittance', '~> 1.1'
|
26
26
|
spec.add_dependency 'resque'
|
27
27
|
|
28
28
|
spec.add_development_dependency 'activerecord'
|
@@ -8,7 +8,7 @@ module Emittance
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
require 'emittance/resque/
|
11
|
+
require 'emittance/resque/event_fanout_job'
|
12
12
|
require 'emittance/resque/event_serializer'
|
13
13
|
require 'emittance/resque/event_serializer/default'
|
14
14
|
|
@@ -20,7 +20,7 @@ module Emittance
|
|
20
20
|
class Dispatcher
|
21
21
|
MethodCallRegistration = Struct.new(:klass_name, :method_name, :queue)
|
22
22
|
|
23
|
-
|
23
|
+
EVENT_FANOUT_JOB = Emittance::Resque::EventFanoutJob
|
24
24
|
DEFAULT_QUEUE = :default
|
25
25
|
|
26
26
|
class << self
|
@@ -35,10 +35,9 @@ module Emittance
|
|
35
35
|
private
|
36
36
|
|
37
37
|
def _process_event(event)
|
38
|
-
registrations = registrations_for(event.class)
|
39
38
|
serialized_event = serialize_event(event)
|
40
39
|
|
41
|
-
|
40
|
+
enqueue_fanout_job(serialized_event)
|
42
41
|
end
|
43
42
|
|
44
43
|
def _register(_identifier, _params = {}, &_callback)
|
@@ -57,14 +56,8 @@ module Emittance
|
|
57
56
|
MethodCallRegistration.new(object.name, method_name, queue)
|
58
57
|
end
|
59
58
|
|
60
|
-
def
|
61
|
-
|
62
|
-
|
63
|
-
::Resque.enqueue_to queue, PROCESS_EVENT_JOB, registration.klass_name, registration.method_name, event
|
64
|
-
end
|
65
|
-
|
66
|
-
def queue_from_registration(registration)
|
67
|
-
registration.queue || default_queue
|
59
|
+
def enqueue_fanout_job(event)
|
60
|
+
::Resque.enqueue EVENT_FANOUT_JOB, event
|
68
61
|
end
|
69
62
|
|
70
63
|
def serialize_event(event)
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'emittance/resque/process_event_job'
|
4
|
+
|
5
|
+
module Emittance
|
6
|
+
module Resque
|
7
|
+
##
|
8
|
+
# A job that fans out events to their proper listeners.
|
9
|
+
#
|
10
|
+
class EventFanoutJob
|
11
|
+
PROCESS_EVENT_JOB = Emittance::Resque::ProcessEventJob
|
12
|
+
|
13
|
+
@queue = :default
|
14
|
+
|
15
|
+
class << self
|
16
|
+
def perform(event)
|
17
|
+
new(event).perform
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize(event)
|
22
|
+
@event = event
|
23
|
+
end
|
24
|
+
|
25
|
+
def perform
|
26
|
+
registrations.each { |registration| enqueue_job registration, event }
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
attr_reader :event
|
32
|
+
|
33
|
+
def registrations
|
34
|
+
identifier = event['identifier']
|
35
|
+
Emittance::Resque::Dispatcher.registrations_for(identifier)
|
36
|
+
end
|
37
|
+
|
38
|
+
def enqueue_job(registration, event)
|
39
|
+
queue = queue_from_registration(registration)
|
40
|
+
|
41
|
+
::Resque.enqueue_to(
|
42
|
+
queue, PROCESS_EVENT_JOB, registration.klass_name, registration.method_name, event
|
43
|
+
)
|
44
|
+
end
|
45
|
+
|
46
|
+
def queue_from_registration(registration)
|
47
|
+
registration.queue || default_queue
|
48
|
+
end
|
49
|
+
|
50
|
+
def default_queue
|
51
|
+
Emittance::Resque::Dispatcher.default_queue
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: emittance-resque
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Guillen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: emittance
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: resque
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,6 +162,7 @@ files:
|
|
162
162
|
- lib/emittance/resque/broker.rb
|
163
163
|
- lib/emittance/resque/dispatcher.rb
|
164
164
|
- lib/emittance/resque/errors.rb
|
165
|
+
- lib/emittance/resque/event_fanout_job.rb
|
165
166
|
- lib/emittance/resque/event_serializer.rb
|
166
167
|
- lib/emittance/resque/event_serializer/active_record.rb
|
167
168
|
- lib/emittance/resque/event_serializer/default.rb
|