eventhub-processor2 1.4.0 → 1.9.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 +5 -5
- data/.rspec +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +5 -4
- data/CHANGELOG.md +30 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +66 -54
- data/README.md +1 -1
- data/Rakefile +7 -4
- data/docker/Dockerfile +5 -3
- data/docker/README.md +2 -2
- data/docker/definitions.json +17 -0
- data/docker/docker-compose.yml +11 -0
- data/eventhub-processor2.gemspec +24 -23
- data/example/crasher.rb +12 -13
- data/example/publisher.rb +41 -41
- data/example/receiver.rb +2 -2
- data/example/router.rb +3 -3
- data/lib/eventhub/actor_heartbeat.rb +23 -23
- data/lib/eventhub/actor_listener.rb +18 -23
- data/lib/eventhub/actor_publisher.rb +7 -7
- data/lib/eventhub/actor_watchdog.rb +3 -4
- data/lib/eventhub/base.rb +24 -31
- data/lib/eventhub/base_exception.rb +2 -2
- data/lib/eventhub/configuration.rb +31 -26
- data/lib/eventhub/constant.rb +24 -24
- data/lib/eventhub/hash_extensions.rb +8 -8
- data/lib/eventhub/helper.rb +7 -7
- data/lib/eventhub/logger.rb +2 -2
- data/lib/eventhub/message.rb +45 -45
- data/lib/eventhub/processor2.rb +22 -22
- data/lib/eventhub/sleeper.rb +1 -1
- data/lib/eventhub/statistics.rb +6 -9
- data/lib/eventhub/version.rb +1 -1
- metadata +34 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c2802cc49773eefcd1c4ac043ad25c07a59576eae96f1a657556741e20da1815
|
4
|
+
data.tar.gz: 84f36939159674c30169766b44e427fdee7a03cbdba0f3d4f356040bb5c2ed41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71c2532c9d70ea9d913778f12435f36d8d4aa1185b7586e6ad41803aa2f5f4182c720edaa17e32e77889c9e46ab4b4147fbaae78ec7ecfab31729208e4f182ed
|
7
|
+
data.tar.gz: 57e0722d7267a3dd6356422ac7f069390dcfce6fe06f7d40eac1debba3efb44418d1c3a5291806db7d4bf0272e98a54a5dc5a479ab1c621ee8afdf33e3f09241
|
data/.rspec
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.6.6
|
data/.travis.yml
CHANGED
@@ -9,9 +9,10 @@ os:
|
|
9
9
|
- linux
|
10
10
|
|
11
11
|
rvm:
|
12
|
-
-
|
13
|
-
- 2.
|
14
|
-
- 2.
|
12
|
+
- 3.0.0
|
13
|
+
- 2.7.2
|
14
|
+
- 2.6.6
|
15
|
+
- 2.5.8
|
15
16
|
|
16
17
|
env:
|
17
18
|
- secure: R0rBtWClmnJKO+zyAncF6+1qDpZ6JQR+Z6VXzUmWw8MuxUXv732XTNYulY/tTeDW876GofAsOF9QfX/jhF+2ubV8SzM6rKTZS09feATuOWRPtECEaBOPcb0JGYouBNg/Lv4onuXb8KS/9U093sRqiJMfib82iY7QK9bnDPsYoQXtMnI7KBeQNrTV0H4nby3lvbjcpMDhmyg+anOmCP5yepZeS53Qq+C5GHguYivisvhSPmCfONrT303XxFLDo/aOkMDlceeZBDhtcpm5Px3GIwybSI9xRtAnpT73oL1Piazda6mRN7VHoT7YAHKqcJNZDB48HYuTj3Pt3oVVw0v78Cf25caBqXttXflXfB8U3qfVt+94uF0icH34NAnpW9l1B8GXHi6CTr27Hg2ZatWkQCN1rCpcCaW0eM/NoAG6snwTIwr1VvjLWpSW5wwhQgHPyMl+MRlTmCn/UM+eQSwPVhflKpMS1+ah6cbhDrQQF1jDt3dRaLqSnVE4APrafdT90SA3SCG2MGOE+pp+DX528gEsRB34UdX2V67dlwXeRu1eU5vZBR7jZrqwuwTAgSvxEF0eJWC0kgvEfouzuVHhVmmSAcNNHlg2kd0/oyQELyXTsklJghwAupcy4X/GEAyfLW9GAxItjATyV7XyfjmaBmdzHl/5JWeXicoyZ/4+8iE=
|
@@ -23,7 +24,7 @@ before_install:
|
|
23
24
|
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64
|
24
25
|
> ./cc-test-reporter
|
25
26
|
- chmod +x ./cc-test-reporter
|
26
|
-
- gem install bundler --version '~> 1.
|
27
|
+
- gem install bundler --version '~> 2.1.2'
|
27
28
|
|
28
29
|
before_script:
|
29
30
|
- "./cc-test-reporter before-build"
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,35 @@
|
|
1
1
|
# Changelog of EventHub::Processor2
|
2
2
|
|
3
|
+
## 1.9.0 / 2021-02-26
|
4
|
+
|
5
|
+
* Updated gem dependencies
|
6
|
+
* Appply ruby style guides
|
7
|
+
* Reduce log noice
|
8
|
+
|
9
|
+
## 1.8.0 / 2020-05-05
|
10
|
+
|
11
|
+
* Increase watchdog cycle time to 60s
|
12
|
+
* Upgrade gem and gem dev dependencies
|
13
|
+
* Upgrade travis ruby version to test
|
14
|
+
|
15
|
+
## 1.7.0 / 2020-02-28
|
16
|
+
|
17
|
+
* Upgrade dependencies: bundler 2.1, rake 13.0, rspec 3.9, simplecov 0.18
|
18
|
+
* status_message always as string for general exception handling
|
19
|
+
* fix rspec tests
|
20
|
+
|
21
|
+
## 1.6.0 / 2019-02-20
|
22
|
+
|
23
|
+
* Upgrade dependencies: bunny 2.14, bundler 2.0
|
24
|
+
|
25
|
+
## 1.5.0 / 2018-12-20
|
26
|
+
|
27
|
+
* Upgrade dependencies: rspec 3.8, bunny 2.12, bundler 1.17, simplecov 0.16
|
28
|
+
|
29
|
+
## 1.4.1 / 2018-02-27
|
30
|
+
|
31
|
+
* Upgrade to eventhub-components 0.2.2
|
32
|
+
|
3
33
|
## 1.4.0 / 2018-02-27
|
4
34
|
|
5
35
|
* Upgrade to bunny 2.9.2
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,76 +1,88 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
eventhub-processor2 (1.
|
5
|
-
bunny (~> 2.
|
6
|
-
celluloid (~> 0.
|
4
|
+
eventhub-processor2 (1.9.0)
|
5
|
+
bunny (~> 2.15)
|
6
|
+
celluloid (~> 0.18)
|
7
7
|
eventhub-components (~> 0.2)
|
8
8
|
uuidtools (~> 2.1)
|
9
9
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
amq-protocol (2.3.
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
celluloid-essentials (0.20.5)
|
24
|
-
timers (>= 4.1.1)
|
25
|
-
celluloid-extras (0.20.5)
|
26
|
-
timers (>= 4.1.1)
|
27
|
-
celluloid-fsm (0.20.5)
|
28
|
-
timers (>= 4.1.1)
|
29
|
-
celluloid-pool (0.20.5)
|
30
|
-
timers (>= 4.1.1)
|
31
|
-
celluloid-supervision (0.20.6)
|
32
|
-
timers (>= 4.1.1)
|
33
|
-
diff-lcs (1.3)
|
34
|
-
docile (1.1.5)
|
35
|
-
eventhub-components (0.2.0)
|
36
|
-
logstash-logger (~> 0.25)
|
37
|
-
hitimes (1.2.6)
|
38
|
-
json (2.1.0)
|
13
|
+
amq-protocol (2.3.2)
|
14
|
+
ast (2.4.2)
|
15
|
+
bunny (2.17.0)
|
16
|
+
amq-protocol (~> 2.3, >= 2.3.1)
|
17
|
+
celluloid (0.18.0)
|
18
|
+
timers (~> 4)
|
19
|
+
diff-lcs (1.4.4)
|
20
|
+
docile (1.3.5)
|
21
|
+
eventhub-components (0.2.2)
|
22
|
+
logstash-logger (~> 0.26)
|
39
23
|
logstash-event (1.2.02)
|
40
24
|
logstash-logger (0.26.1)
|
41
25
|
logstash-event (~> 1.2)
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
rspec
|
26
|
+
parallel (1.20.1)
|
27
|
+
parser (3.0.0.0)
|
28
|
+
ast (~> 2.4.1)
|
29
|
+
rainbow (3.0.0)
|
30
|
+
rake (13.0.3)
|
31
|
+
regexp_parser (2.0.3)
|
32
|
+
rexml (3.2.4)
|
33
|
+
rspec (3.10.0)
|
34
|
+
rspec-core (~> 3.10.0)
|
35
|
+
rspec-expectations (~> 3.10.0)
|
36
|
+
rspec-mocks (~> 3.10.0)
|
37
|
+
rspec-core (3.10.1)
|
38
|
+
rspec-support (~> 3.10.0)
|
39
|
+
rspec-expectations (3.10.1)
|
50
40
|
diff-lcs (>= 1.2.0, < 2.0)
|
51
|
-
rspec-support (~> 3.
|
52
|
-
rspec-mocks (3.
|
41
|
+
rspec-support (~> 3.10.0)
|
42
|
+
rspec-mocks (3.10.2)
|
53
43
|
diff-lcs (>= 1.2.0, < 2.0)
|
54
|
-
rspec-support (~> 3.
|
55
|
-
rspec-support (3.
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
44
|
+
rspec-support (~> 3.10.0)
|
45
|
+
rspec-support (3.10.2)
|
46
|
+
rubocop (1.10.0)
|
47
|
+
parallel (~> 1.10)
|
48
|
+
parser (>= 3.0.0.0)
|
49
|
+
rainbow (>= 2.2.2, < 4.0)
|
50
|
+
regexp_parser (>= 1.8, < 3.0)
|
51
|
+
rexml
|
52
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
53
|
+
ruby-progressbar (~> 1.7)
|
54
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
55
|
+
rubocop-ast (1.4.1)
|
56
|
+
parser (>= 2.7.1.5)
|
57
|
+
rubocop-performance (1.9.2)
|
58
|
+
rubocop (>= 0.90.0, < 2.0)
|
59
|
+
rubocop-ast (>= 0.4.0)
|
60
|
+
ruby-progressbar (1.11.0)
|
61
|
+
simplecov (0.21.2)
|
62
|
+
docile (~> 1.1)
|
63
|
+
simplecov-html (~> 0.11)
|
64
|
+
simplecov_json_formatter (~> 0.1)
|
65
|
+
simplecov-html (0.12.3)
|
66
|
+
simplecov_json_formatter (0.1.2)
|
67
|
+
standard (0.13.0)
|
68
|
+
rubocop (= 1.10.0)
|
69
|
+
rubocop-performance (= 1.9.2)
|
70
|
+
standardrb (1.0.0)
|
71
|
+
standard
|
72
|
+
timers (4.3.3)
|
73
|
+
unicode-display_width (2.0.0)
|
74
|
+
uuidtools (2.2.0)
|
64
75
|
|
65
76
|
PLATFORMS
|
66
77
|
ruby
|
67
78
|
|
68
79
|
DEPENDENCIES
|
69
|
-
bundler (~> 1
|
80
|
+
bundler (~> 2.1)
|
70
81
|
eventhub-processor2!
|
71
|
-
rake (~>
|
72
|
-
rspec (~> 3.
|
73
|
-
simplecov (~> 0.
|
82
|
+
rake (~> 13.0)
|
83
|
+
rspec (~> 3.9)
|
84
|
+
simplecov (~> 0.21)
|
85
|
+
standardrb (~> 1.0)
|
74
86
|
|
75
87
|
BUNDLED WITH
|
76
|
-
1.
|
88
|
+
2.1.4
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
[](https://badge.fury.io/rb/eventhub-processor2)
|
2
2
|
[](https://codeclimate.com/github/thomis/eventhub-processor2/maintainability)
|
3
3
|
[](https://codeclimate.com/github/thomis/eventhub-processor2/test_coverage)
|
4
4
|
[](https://travis-ci.org/thomis/eventhub-processor2)
|
data/Rakefile
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rspec/core/rake_task"
|
3
|
+
require "standard/rake"
|
3
4
|
|
4
|
-
RSpec::Core::RakeTask.new(:spec)
|
5
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
6
|
+
t.verbose = false
|
7
|
+
end
|
5
8
|
|
6
|
-
task default: :spec
|
9
|
+
task default: [:spec, :standard]
|
data/docker/Dockerfile
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
FROM rabbitmq:3.
|
1
|
+
FROM rabbitmq:3.8.12-management
|
2
|
+
|
3
|
+
LABEL maintainer="thomas.steiner@ikey.ch"
|
4
|
+
|
2
5
|
ADD definitions.json /etc/rabbitmq/
|
3
6
|
ADD rabbitmq.config /etc/rabbitmq/
|
4
7
|
RUN chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config /etc/rabbitmq/definitions.json
|
5
|
-
|
6
|
-
EXPOSE 5672 15672
|
8
|
+
RUN rabbitmq-plugins enable rabbitmq_web_stomp
|
data/docker/README.md
CHANGED
@@ -5,8 +5,8 @@ Please follow these steps to build and run a docker container with a predefined
|
|
5
5
|
|
6
6
|
* Have latest docker community edition installed (https://www.docker.com)
|
7
7
|
* cd into the docker folder
|
8
|
-
* docker
|
9
|
-
* docker
|
8
|
+
* docker-compose up --no-start
|
9
|
+
* docker-compose start
|
10
10
|
|
11
11
|
Is the docker container running fine?
|
12
12
|
Go to http://localhost:15672 and login to RabbitMQ Management Console with guest/guest
|
data/docker/definitions.json
CHANGED
@@ -80,6 +80,15 @@
|
|
80
80
|
"auto_delete": false,
|
81
81
|
"internal": false,
|
82
82
|
"arguments": {}
|
83
|
+
},
|
84
|
+
{
|
85
|
+
"name": "an_exchange",
|
86
|
+
"vhost": "event_hub",
|
87
|
+
"type": "direct",
|
88
|
+
"durable": true,
|
89
|
+
"auto_delete": false,
|
90
|
+
"internal": false,
|
91
|
+
"arguments": {}
|
83
92
|
}
|
84
93
|
],
|
85
94
|
"bindings": [
|
@@ -106,6 +115,14 @@
|
|
106
115
|
"destination_type": "queue",
|
107
116
|
"routing_key": "",
|
108
117
|
"arguments": {}
|
118
|
+
},
|
119
|
+
{
|
120
|
+
"source": "an_exchange",
|
121
|
+
"vhost": "event_hub",
|
122
|
+
"destination": "example.outbound",
|
123
|
+
"destination_type": "queue",
|
124
|
+
"routing_key": "",
|
125
|
+
"arguments": {}
|
109
126
|
}
|
110
127
|
]
|
111
128
|
}
|
data/eventhub-processor2.gemspec
CHANGED
@@ -1,37 +1,38 @@
|
|
1
|
-
lib = File.expand_path(
|
1
|
+
lib = File.expand_path("../lib", __FILE__)
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require
|
3
|
+
require "eventhub/version"
|
4
4
|
|
5
|
-
note =
|
5
|
+
note = "Next generation gem to build ruby based eventhub processor"
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name
|
9
|
-
spec.version
|
10
|
-
spec.authors
|
11
|
-
spec.email
|
8
|
+
spec.name = "eventhub-processor2"
|
9
|
+
spec.version = EventHub::VERSION
|
10
|
+
spec.authors = ["Steiner, Thomas"]
|
11
|
+
spec.email = ["thomas.steiner@ikey.ch"]
|
12
12
|
|
13
|
-
spec.summary
|
14
|
-
spec.description
|
15
|
-
spec.homepage
|
16
|
-
spec.license
|
13
|
+
spec.summary = note
|
14
|
+
spec.description = note
|
15
|
+
spec.homepage = "https://github.com/thomis/eventhub-processor2"
|
16
|
+
spec.license = "MIT"
|
17
17
|
|
18
|
-
spec.files
|
18
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
19
19
|
f.match(%r{^(test|spec|features)/})
|
20
20
|
end
|
21
|
-
spec.bindir
|
22
|
-
spec.executables
|
23
|
-
spec.require_paths = [
|
21
|
+
spec.bindir = "exe"
|
22
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
|
+
spec.require_paths = ["lib"]
|
24
24
|
|
25
25
|
# required by celluloid and bunny (-> amq-protocol)
|
26
26
|
# spec.required_ruby_version = '~> 2.2.6'
|
27
27
|
|
28
|
-
spec.add_dependency
|
29
|
-
spec.add_dependency
|
30
|
-
spec.add_dependency
|
31
|
-
spec.add_dependency
|
28
|
+
spec.add_dependency "celluloid", "~> 0.18"
|
29
|
+
spec.add_dependency "bunny", "~> 2.15"
|
30
|
+
spec.add_dependency "eventhub-components", "~> 0.2"
|
31
|
+
spec.add_dependency "uuidtools", "~> 2.1"
|
32
32
|
|
33
|
-
spec.add_development_dependency
|
34
|
-
spec.add_development_dependency
|
35
|
-
spec.add_development_dependency
|
36
|
-
spec.add_development_dependency
|
33
|
+
spec.add_development_dependency "bundler", "~> 2.1"
|
34
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
35
|
+
spec.add_development_dependency "rspec", "~> 3.9"
|
36
|
+
spec.add_development_dependency "simplecov", "~> 0.21"
|
37
|
+
spec.add_development_dependency "standardrb", "~> 1.0"
|
37
38
|
end
|
data/example/crasher.rb
CHANGED
@@ -1,17 +1,17 @@
|
|
1
|
-
require
|
2
|
-
require_relative
|
1
|
+
require "eventhub/components"
|
2
|
+
require_relative "../lib/eventhub/sleeper"
|
3
3
|
|
4
4
|
RESTART_RANGES_IN_SECONDS = (30..600).to_a
|
5
|
-
PROCESS_PATTERNS = [
|
5
|
+
PROCESS_PATTERNS = ["router", "receiver"]
|
6
6
|
|
7
7
|
# Module Crasher
|
8
8
|
module Crasher
|
9
9
|
def self.logger
|
10
10
|
unless @logger
|
11
11
|
@logger = ::EventHub::Components::MultiLogger.new
|
12
|
-
@logger.add_device(Logger.new(
|
12
|
+
@logger.add_device(Logger.new($stdout))
|
13
13
|
@logger.add_device(
|
14
|
-
EventHub::Components::Logger.logstash(
|
14
|
+
EventHub::Components::Logger.logstash("crasher", "development")
|
15
15
|
)
|
16
16
|
end
|
17
17
|
@logger
|
@@ -26,7 +26,7 @@ module Crasher
|
|
26
26
|
|
27
27
|
def restart
|
28
28
|
Crasher.logger.info "Sending Signal HUP to process [#{@id}/#{@name}]"
|
29
|
-
Process.kill(
|
29
|
+
Process.kill("HUP", @id)
|
30
30
|
rescue Errno::ESRCH
|
31
31
|
end
|
32
32
|
|
@@ -35,13 +35,13 @@ module Crasher
|
|
35
35
|
PROCESS_PATTERNS.each do |name|
|
36
36
|
data = `ps | grep #{name}.rb`
|
37
37
|
data.lines[0..-2].each do |line|
|
38
|
-
a = line.split(
|
38
|
+
a = line.split(" ")
|
39
39
|
next if a.size > 5
|
40
40
|
processes << MyProcess.new(a[0].to_i, a[-1])
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
Crasher.logger.info "Found ids: #{processes.map{ |pr| pr.id}.join(
|
44
|
+
Crasher.logger.info "Found ids: #{processes.map { |pr| pr.id }.join(", ")}"
|
45
45
|
processes
|
46
46
|
end
|
47
47
|
end
|
@@ -61,13 +61,12 @@ module Crasher
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
|
65
64
|
class Application
|
66
65
|
def initialize
|
67
66
|
@sleeper = EventHub::Sleeper.new
|
68
67
|
@run = true
|
69
68
|
|
70
|
-
Signal.trap(
|
69
|
+
Signal.trap("INT") {
|
71
70
|
@run = false
|
72
71
|
@sleeper.stop
|
73
72
|
}
|
@@ -75,8 +74,8 @@ module Crasher
|
|
75
74
|
|
76
75
|
def pick_process
|
77
76
|
processes = []
|
78
|
-
processes << Docker.new(
|
79
|
-
processes << Docker.new(
|
77
|
+
processes << Docker.new("eventhub.rabbitmq")
|
78
|
+
processes << Docker.new("eventhub.rabbitmq", 0)
|
80
79
|
processes << MyProcess.all
|
81
80
|
processes.flatten.sample
|
82
81
|
end
|
@@ -89,7 +88,7 @@ module Crasher
|
|
89
88
|
@sleeper.start(to_sleep)
|
90
89
|
next unless @run
|
91
90
|
process = pick_process
|
92
|
-
process
|
91
|
+
process&.restart
|
93
92
|
end
|
94
93
|
Crasher.logger.info "Crasher has been stopped"
|
95
94
|
end
|