hanami-events-cloud_pubsub 0.2.5 → 0.2.6
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 88120cf9f817872c49197ae567f89522ea1f4b2a
|
|
4
|
+
data.tar.gz: 758ef846e83c6fc98167d57935035746126b9cec
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9e303a3232233768644db08dfc82b71dff839240c983c0f097d778b514a8613331116baa6906ddc9cf8ccb0146b8278f698e63c055b8b900ea1fb05b52cd5190
|
|
7
|
+
data.tar.gz: 7daa16544379cbf1a72d05bd8eb558285899c102fbf0fe99302a80629678daaa3d56acda34030830aac9339c6663c9a37e3aa4f8085c9c05083c5a6733a00d0e
|
data/Gemfile.lock
CHANGED
|
@@ -9,12 +9,11 @@ GIT
|
|
|
9
9
|
PATH
|
|
10
10
|
remote: .
|
|
11
11
|
specs:
|
|
12
|
-
hanami-events-cloud_pubsub (0.2.
|
|
12
|
+
hanami-events-cloud_pubsub (0.2.6)
|
|
13
13
|
dry-configurable (~> 0.7.0)
|
|
14
14
|
google-cloud-pubsub (~> 0.30.2)
|
|
15
15
|
hanami-cli (~> 0.2.0)
|
|
16
16
|
hanami-events (~> 0)
|
|
17
|
-
rack (~> 2.0.5)
|
|
18
17
|
|
|
19
18
|
GEM
|
|
20
19
|
remote: https://rubygems.org/
|
|
@@ -95,7 +94,6 @@ GEM
|
|
|
95
94
|
coderay (~> 1.1.0)
|
|
96
95
|
method_source (~> 0.9.0)
|
|
97
96
|
public_suffix (3.0.2)
|
|
98
|
-
rack (2.0.5)
|
|
99
97
|
rainbow (3.0.0)
|
|
100
98
|
rake (12.3.1)
|
|
101
99
|
rly (0.2.3)
|
|
@@ -26,7 +26,6 @@ Gem::Specification.new do |spec|
|
|
|
26
26
|
spec.add_dependency 'google-cloud-pubsub', '~> 0.30.2'
|
|
27
27
|
spec.add_dependency 'hanami-cli', '~> 0.2.0'
|
|
28
28
|
spec.add_dependency 'hanami-events', '~> 0'
|
|
29
|
-
spec.add_dependency 'rack', '~> 2.0.5'
|
|
30
29
|
|
|
31
30
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
|
32
31
|
spec.add_development_dependency 'rake', '~> 12.3'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require '
|
|
3
|
+
require 'webrick'
|
|
4
4
|
|
|
5
5
|
module Hanami
|
|
6
6
|
module Events
|
|
@@ -13,44 +13,44 @@ module Hanami
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def start
|
|
16
|
-
|
|
16
|
+
logger.info 'Starting healthcheck server on port 0.0.0.0:8080'
|
|
17
17
|
server.start
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
def
|
|
21
|
-
|
|
20
|
+
def shutdown
|
|
21
|
+
logger.info 'Shutting down healthcheck server'
|
|
22
|
+
server.shutdown
|
|
23
|
+
end
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
def run_in_background(on_shutdown: nil)
|
|
26
|
+
prom = Concurrent::Promise.execute do
|
|
27
|
+
start
|
|
28
|
+
on_shutdown&.call(server)
|
|
26
29
|
end
|
|
30
|
+
|
|
31
|
+
prom.catch { |err| logger.error(err) }
|
|
27
32
|
end
|
|
28
33
|
|
|
29
34
|
private
|
|
30
35
|
|
|
31
|
-
|
|
32
|
-
@server ||= Rack::Server.new(
|
|
33
|
-
Port: 8080,
|
|
34
|
-
Host: '0.0.0.0',
|
|
35
|
-
quiet: true,
|
|
36
|
-
app: app
|
|
37
|
-
)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def app
|
|
41
|
-
health_endpoint = method(:health_endpoint)
|
|
36
|
+
attr_reader :logger, :runner
|
|
42
37
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
def server
|
|
39
|
+
@server ||=
|
|
40
|
+
WEBrick::HTTPServer.new(
|
|
41
|
+
Port: 8080,
|
|
42
|
+
BindAddress: '0.0.0.0',
|
|
43
|
+
Logger: WEBrick::Log.new('/dev/null'),
|
|
44
|
+
AccessLog: []
|
|
45
|
+
).tap do |srv|
|
|
46
|
+
srv.mount_proc '/', method(:health_endpoint)
|
|
47
|
+
end
|
|
46
48
|
end
|
|
47
49
|
|
|
48
|
-
def health_endpoint(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
body =
|
|
52
|
-
|
|
53
|
-
[status, headers, body]
|
|
50
|
+
def health_endpoint(_req, res)
|
|
51
|
+
res['Content-Type'] = 'text/plain'
|
|
52
|
+
res.status = runner.healthy? ? 200 : 503
|
|
53
|
+
res.body = res.status.to_s
|
|
54
54
|
end
|
|
55
55
|
end
|
|
56
56
|
end
|
|
@@ -25,11 +25,8 @@ module Hanami
|
|
|
25
25
|
# Will be called on TSTP
|
|
26
26
|
#
|
|
27
27
|
# Stop processing new events (unsubscribe from topics, etc)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
# call pause to allow for a safe restart of the runner.
|
|
31
|
-
def pause
|
|
32
|
-
logger.info 'Pausing CloudPubsub runner'
|
|
28
|
+
def stop
|
|
29
|
+
logger.info 'Stopping CloudPubsub listeners'
|
|
33
30
|
adapter.listeners.each(&:stop)
|
|
34
31
|
self
|
|
35
32
|
end
|
|
@@ -40,7 +37,7 @@ module Hanami
|
|
|
40
37
|
# waiting for messages to finish processing, etc. If this method succesfully
|
|
41
38
|
# runs, there should be no potential for undefined behavior.
|
|
42
39
|
def gracefully_shutdown
|
|
43
|
-
|
|
40
|
+
stop
|
|
44
41
|
logger.info "Gracefully shutting down CloudPubsub runner: #{self}"
|
|
45
42
|
sleep_for_a_bit
|
|
46
43
|
adapter.flush_messages
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hanami-events-cloud_pubsub
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ian Ker-Seymer
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-06-
|
|
11
|
+
date: 2018-06-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dry-configurable
|
|
@@ -66,20 +66,6 @@ dependencies:
|
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '0'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: rack
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: 2.0.5
|
|
76
|
-
type: :runtime
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: 2.0.5
|
|
83
69
|
- !ruby/object:Gem::Dependency
|
|
84
70
|
name: bundler
|
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|