stack-service-base 0.0.22 → 0.0.23

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
  SHA256:
3
- metadata.gz: 99bb096f5c4352aec44aacf9f7453e5341f4236608f34329da857349598450aa
4
- data.tar.gz: 6433bfec1423c73e78370389d0cb9975de7973d5bb5931886994d468f6a16dca
3
+ metadata.gz: 981088d6c8124d15739331418f2b25600e483d755c85cb5cc6c2847b9a9c55dd
4
+ data.tar.gz: 436761899f9450b3ae813a8b0ff5e3e5a41aca2965b22f4c2245bf5fa6233399
5
5
  SHA512:
6
- metadata.gz: bd978f660cae501b938c4809cb9d91691d0725ef1c499dd5ffba82543086e045879d3640a6d9a6ba0b84c6edff0d338f0a2029e6ef31d8384fcb27a56a259972
7
- data.tar.gz: d7c577058adb0f958add55962be39f0b1356e7f784f92e32c3e45599c45289ec493fcecd2f90108367c13cb560fbd0a1700d37d5c5a9877b272d74a67813f06b
6
+ metadata.gz: 42a50d9e11fecf78d95ca5b842a25bfee866c4351f3c8834b50b462d4cb014f8e6e5a22c47ebe3546aa1d399ea44ba873b632a335b052705e81810000e60861a
7
+ data.tar.gz: dafdecf6ddac58da2161f751840751312960b033a67312f2666f2afbf61491c6dbfbb0982aeda338abf3aa4c0c62e933f8fd74179dc6b5be918010e34183e6a3
@@ -0,0 +1,46 @@
1
+ require "nats"
2
+
3
+ NATS_ENABLED = ENV['NATS_URL'].to_s != ''
4
+
5
+ NATS_URL = ENV['NATS_URL']# || 'nats://nats_single:4222'
6
+ NATS_STACK_NAME = ENV['STACK_NAME'] || 'undefined_stack'
7
+ NATS_SERVICE_NAME = ENV['STACK_SERVICE_NAME'] || 'undefined_service'
8
+
9
+ ENV['NATS_RECONNECT'] ||= 'true'
10
+ ENV['NATS_RECONNECT_TIME_WAIT'] ||= '1000'
11
+ ENV['NATS_MAX_RECONNECT_ATTEMPTS'] ||= '-1'
12
+
13
+ $nats_client = nil
14
+
15
+ def initialize_nats_service
16
+
17
+ $nats_client = NATS.connect NATS_URL
18
+
19
+ service = $nats_client.services.add(
20
+ name: "#{NATS_SERVICE_NAME}_#{NATS_STACK_NAME}",
21
+ version: "1.0.0",
22
+ description: "service-base auto service"
23
+ )
24
+
25
+ service.on_stop do
26
+ puts "Service stopped at #{Time.now}"
27
+ end
28
+
29
+ service.endpoints.add("min") do |message|
30
+ min = JSON.parse(message.data).min
31
+ message.respond(min.to_json)
32
+ end
33
+
34
+ service.endpoints.add("max") do |message|
35
+ max = JSON.parse(message.data).max
36
+ message.respond(max.to_json)
37
+ end
38
+
39
+ min = $nats_client.request("min", [5, 100, -7, 34].to_json, timeout: 10)
40
+ max = $nats_client.request("max", [5, 100, -7, 34].to_json, timeout: 10)
41
+
42
+ puts "min = #{min.data}, max = #{max.data}"
43
+
44
+ # service.stop
45
+
46
+ end
@@ -1,6 +1,7 @@
1
1
  require 'stack-service-base/logging'
2
2
  require 'stack-service-base/rack_helpers'
3
3
  require 'stack-service-base/open_telemetry'
4
+ require 'stack-service-base/nats_service'
4
5
 
5
6
  module StackServiceBase
6
7
  class << self
@@ -14,6 +15,10 @@ module StackServiceBase
14
15
  otel_initialize
15
16
  end
16
17
 
18
+ if NATS_ENABLED
19
+ initialize_nats_service
20
+ end
21
+
17
22
  RackHelpers.rack_setup app
18
23
 
19
24
  if ENV.fetch('PROMETHEUS_METRICS_EXPORT', 'true') == 'true'
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module StackServiceBase
2
2
  class Base
3
- VERSION = '0.0.22'
3
+ VERSION = '0.0.23'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stack-service-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.22
4
+ version: 0.0.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-06-27 00:00:00.000000000 Z
11
+ date: 2025-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: nats-pure
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rake
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -188,6 +202,7 @@ files:
188
202
  - lib/stack-service-base/database.rb
189
203
  - lib/stack-service-base/fiber_pool.rb
190
204
  - lib/stack-service-base/logging.rb
205
+ - lib/stack-service-base/nats_service.rb
191
206
  - lib/stack-service-base/open_telemetry.rb
192
207
  - lib/stack-service-base/prometheus.rb
193
208
  - lib/stack-service-base/prometheus_parser.rb