bbk-app 1.1.3.334031 → 1.1.4.345154
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 +43 -24
- data/lib/bbk/app/dispatcher/direct_stream_strategy.rb +49 -0
- data/lib/bbk/app/dispatcher.rb +3 -2
- data/lib/bbk/app/version.rb +1 -1
- metadata +9 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2d8e2d07476d0e9a71ffbc2b121ce3c322ce266fac70cbb0f3067616072934f4
|
|
4
|
+
data.tar.gz: 1b6ae740fbac59dcbd3e8599e7d7890ef90cd5f1c9c21303e96639d336050b58
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c87da2655df84a605253b25e151773419adf0f3484f39e9f0f61c6ecbc5c0e84afad9003302d6f52ef7f1f68cbe113557abf170c0ee6d47746f8aaada1e5c0a3
|
|
7
|
+
data.tar.gz: 29818a7ca1faac33dad799731ed619cbb9095aceff39e1109af7cc03a055594ae24d876b319498855ca0b854af26d06c636067f0d5a6f15f9c62d4f7a64e47d1
|
data/Gemfile.lock
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
bbk-app (1.1.
|
|
5
|
-
activesupport (
|
|
4
|
+
bbk-app (1.1.4)
|
|
5
|
+
activesupport (~> 7.1)
|
|
6
6
|
bbk-utils (> 1.0.1)
|
|
7
7
|
oj
|
|
8
8
|
timeouter
|
|
@@ -10,17 +10,24 @@ PATH
|
|
|
10
10
|
GEM
|
|
11
11
|
remote: https://rubygems.org/
|
|
12
12
|
specs:
|
|
13
|
-
activemodel (
|
|
14
|
-
activesupport (=
|
|
15
|
-
activerecord (
|
|
16
|
-
activemodel (=
|
|
17
|
-
activesupport (=
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
activemodel (7.2.3)
|
|
14
|
+
activesupport (= 7.2.3)
|
|
15
|
+
activerecord (7.2.3)
|
|
16
|
+
activemodel (= 7.2.3)
|
|
17
|
+
activesupport (= 7.2.3)
|
|
18
|
+
timeout (>= 0.4.0)
|
|
19
|
+
activesupport (7.2.3)
|
|
20
|
+
base64
|
|
21
|
+
benchmark (>= 0.3)
|
|
22
|
+
bigdecimal
|
|
23
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
24
|
+
connection_pool (>= 2.2.5)
|
|
25
|
+
drb
|
|
20
26
|
i18n (>= 1.6, < 2)
|
|
27
|
+
logger (>= 1.4.2)
|
|
21
28
|
minitest (>= 5.1)
|
|
22
|
-
|
|
23
|
-
|
|
29
|
+
securerandom (>= 0.3)
|
|
30
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
|
24
31
|
addressable (2.8.0)
|
|
25
32
|
public_suffix (>= 2.0.2, < 5.0)
|
|
26
33
|
amq-protocol (2.3.2)
|
|
@@ -30,9 +37,11 @@ GEM
|
|
|
30
37
|
descendants_tracker (~> 0.0.4)
|
|
31
38
|
ice_nine (~> 0.11.0)
|
|
32
39
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
40
|
+
base64 (0.3.0)
|
|
33
41
|
bbk-utils (1.0.1.147183)
|
|
34
42
|
activesupport (>= 6.0)
|
|
35
43
|
russian
|
|
44
|
+
benchmark (0.5.0)
|
|
36
45
|
bigdecimal (3.3.1)
|
|
37
46
|
bunny (2.19.0)
|
|
38
47
|
amq-protocol (~> 2.3, >= 2.3.1)
|
|
@@ -42,12 +51,19 @@ GEM
|
|
|
42
51
|
byebug (11.1.3)
|
|
43
52
|
coercible (1.0.0)
|
|
44
53
|
descendants_tracker (~> 0.0.1)
|
|
45
|
-
concurrent-ruby (1.
|
|
46
|
-
|
|
54
|
+
concurrent-ruby (1.3.5)
|
|
55
|
+
connection_pool (3.0.1)
|
|
56
|
+
database_cleaner (2.1.0)
|
|
57
|
+
database_cleaner-active_record (>= 2, < 3)
|
|
58
|
+
database_cleaner-active_record (2.2.2)
|
|
59
|
+
activerecord (>= 5.a)
|
|
60
|
+
database_cleaner-core (~> 2.0)
|
|
61
|
+
database_cleaner-core (2.0.1)
|
|
47
62
|
descendants_tracker (0.0.4)
|
|
48
63
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
49
64
|
diff-lcs (1.5.0)
|
|
50
65
|
docile (1.4.0)
|
|
66
|
+
drb (2.2.3)
|
|
51
67
|
equalizer (0.0.11)
|
|
52
68
|
erubis (2.7.0)
|
|
53
69
|
faker (2.19.0)
|
|
@@ -61,15 +77,16 @@ GEM
|
|
|
61
77
|
path_expander (~> 1.0)
|
|
62
78
|
ruby_parser (~> 3.1, > 3.1.0)
|
|
63
79
|
sexp_processor (~> 4.8)
|
|
64
|
-
i18n (1.
|
|
80
|
+
i18n (1.14.7)
|
|
65
81
|
concurrent-ruby (~> 1.0)
|
|
66
82
|
ice_nine (0.11.2)
|
|
67
83
|
kwalify (0.7.2)
|
|
68
84
|
launchy (2.5.0)
|
|
69
85
|
addressable (~> 2.7)
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
86
|
+
logger (1.7.0)
|
|
87
|
+
mini_portile2 (2.8.9)
|
|
88
|
+
minitest (5.26.2)
|
|
89
|
+
oj (3.16.13)
|
|
73
90
|
bigdecimal (>= 3.0)
|
|
74
91
|
ostruct (>= 0.2)
|
|
75
92
|
ostruct (0.6.3)
|
|
@@ -129,6 +146,7 @@ GEM
|
|
|
129
146
|
virtus (~> 1.0)
|
|
130
147
|
russian (0.6.0)
|
|
131
148
|
i18n (>= 0.5.0)
|
|
149
|
+
securerandom (0.4.1)
|
|
132
150
|
set (1.1.0)
|
|
133
151
|
sexp_processor (4.16.0)
|
|
134
152
|
simplecov (0.21.2)
|
|
@@ -144,15 +162,17 @@ GEM
|
|
|
144
162
|
sorted_set (1.0.3)
|
|
145
163
|
rbtree
|
|
146
164
|
set (~> 1.0)
|
|
147
|
-
sqlite3 (
|
|
165
|
+
sqlite3 (2.0.4)
|
|
148
166
|
mini_portile2 (~> 2.8.0)
|
|
149
|
-
sqlite3 (
|
|
167
|
+
sqlite3 (2.0.4-x86_64-linux-gnu)
|
|
168
|
+
sqlite3 (2.0.4-x86_64-linux-musl)
|
|
150
169
|
terminal-table (3.0.2)
|
|
151
170
|
unicode-display_width (>= 1.1.1, < 3)
|
|
152
171
|
thread_safe (0.3.6)
|
|
172
|
+
timeout (0.4.4)
|
|
153
173
|
timeouter (0.1.3.38794)
|
|
154
174
|
tty-which (0.4.2)
|
|
155
|
-
tzinfo (2.0.
|
|
175
|
+
tzinfo (2.0.6)
|
|
156
176
|
concurrent-ruby (~> 1.0)
|
|
157
177
|
unicode-display_width (2.1.0)
|
|
158
178
|
virtus (1.0.5)
|
|
@@ -160,7 +180,6 @@ GEM
|
|
|
160
180
|
coercible (~> 1.0)
|
|
161
181
|
descendants_tracker (~> 0.0, >= 0.0.3)
|
|
162
182
|
equalizer (~> 0.0, >= 0.0.9)
|
|
163
|
-
zeitwerk (2.5.3)
|
|
164
183
|
|
|
165
184
|
PLATFORMS
|
|
166
185
|
ruby
|
|
@@ -168,12 +187,12 @@ PLATFORMS
|
|
|
168
187
|
x86_64-linux-musl
|
|
169
188
|
|
|
170
189
|
DEPENDENCIES
|
|
171
|
-
activerecord (~>
|
|
190
|
+
activerecord (~> 7.1)
|
|
172
191
|
bbk-app!
|
|
173
192
|
bundler (~> 2.0)
|
|
174
193
|
bunny-mock (~> 1.7.0)
|
|
175
194
|
byebug
|
|
176
|
-
database_cleaner (~> 1.
|
|
195
|
+
database_cleaner (~> 2.1.0)
|
|
177
196
|
faker (~> 2)
|
|
178
197
|
rake (~> 12.0)
|
|
179
198
|
rspec (~> 3.0)
|
|
@@ -182,7 +201,7 @@ DEPENDENCIES
|
|
|
182
201
|
rubycritic
|
|
183
202
|
simplecov
|
|
184
203
|
simplecov-console
|
|
185
|
-
sqlite3 (~>
|
|
204
|
+
sqlite3 (~> 2.0.0)
|
|
186
205
|
|
|
187
206
|
BUNDLED WITH
|
|
188
207
|
2.2.33
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
require 'bbk/app/dispatcher/message_stream'
|
|
2
|
+
|
|
3
|
+
module BBK
|
|
4
|
+
module App
|
|
5
|
+
class Dispatcher
|
|
6
|
+
class DirectStreamStrategy
|
|
7
|
+
|
|
8
|
+
def initialize(pool, logger:)
|
|
9
|
+
@pool = pool
|
|
10
|
+
@logger = logger
|
|
11
|
+
@stopped = false
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def run(consumers, &block)
|
|
15
|
+
@block = block
|
|
16
|
+
@unblocker = Queue.new
|
|
17
|
+
|
|
18
|
+
consumers.each {|cons| cons.run(self) }
|
|
19
|
+
@pool.wait_for_termination(0)
|
|
20
|
+
|
|
21
|
+
begin
|
|
22
|
+
@pool.shutdown
|
|
23
|
+
rescue StandardError
|
|
24
|
+
nil
|
|
25
|
+
end
|
|
26
|
+
@pool.kill unless @pool.wait_for_termination(@stop_queue_timeout)
|
|
27
|
+
ensure
|
|
28
|
+
@unblocker.push(:ok)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def push(message)
|
|
32
|
+
@logger.debug "[#{self.class}] Consumed message #{message.headers}"
|
|
33
|
+
@pool.post(message, &@block) unless @stopped
|
|
34
|
+
end
|
|
35
|
+
alias << push
|
|
36
|
+
|
|
37
|
+
def stop(timeout = 5)
|
|
38
|
+
@stopped = true
|
|
39
|
+
@stop_queue_timeout = timeout
|
|
40
|
+
|
|
41
|
+
@pool.shutdown rescue nil
|
|
42
|
+
@unblocker.pop
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
data/lib/bbk/app/dispatcher.rb
CHANGED
|
@@ -3,6 +3,7 @@ require 'bbk/app/thread_pool'
|
|
|
3
3
|
require 'bbk/app/dispatcher/message_stream'
|
|
4
4
|
require 'bbk/app/dispatcher/message'
|
|
5
5
|
require 'bbk/app/dispatcher/queue_stream_strategy'
|
|
6
|
+
require 'bbk/app/dispatcher/direct_stream_strategy'
|
|
6
7
|
require 'bbk/app/dispatcher/result'
|
|
7
8
|
require 'bbk/app/dispatcher/route'
|
|
8
9
|
require 'bbk/utils/proxy_logger'
|
|
@@ -89,7 +90,7 @@ module BBK
|
|
|
89
90
|
# 3. дождаться обработки всего в очереди или таймаут
|
|
90
91
|
# 4. остановить потоки
|
|
91
92
|
# 5. остановить паблишеры
|
|
92
|
-
def close(
|
|
93
|
+
def close(timeout = 5)
|
|
93
94
|
ActiveSupport::Notifications.instrument 'dispatcher.close', dispatcher: self
|
|
94
95
|
consumers.each do |cons|
|
|
95
96
|
begin
|
|
@@ -100,7 +101,7 @@ module BBK
|
|
|
100
101
|
end
|
|
101
102
|
end
|
|
102
103
|
|
|
103
|
-
@stream_strategy&.stop(
|
|
104
|
+
@stream_strategy&.stop(timeout)
|
|
104
105
|
|
|
105
106
|
consumers.each do |cons|
|
|
106
107
|
begin
|
data/lib/bbk/app/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bbk-app
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.4.345154
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Samoilenko Yuri
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-12-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -70,14 +70,14 @@ dependencies:
|
|
|
70
70
|
name: activerecord
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
|
-
- - "
|
|
73
|
+
- - ">="
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
75
|
version: '6.0'
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- - "
|
|
80
|
+
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '6.0'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
@@ -114,14 +114,14 @@ dependencies:
|
|
|
114
114
|
requirements:
|
|
115
115
|
- - "~>"
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version:
|
|
117
|
+
version: 2.1.0
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
122
|
- - "~>"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version:
|
|
124
|
+
version: 2.1.0
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
126
|
name: faker
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -170,14 +170,14 @@ dependencies:
|
|
|
170
170
|
requirements:
|
|
171
171
|
- - "~>"
|
|
172
172
|
- !ruby/object:Gem::Version
|
|
173
|
-
version:
|
|
173
|
+
version: 2.0.0
|
|
174
174
|
type: :development
|
|
175
175
|
prerelease: false
|
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
177
|
requirements:
|
|
178
178
|
- - "~>"
|
|
179
179
|
- !ruby/object:Gem::Version
|
|
180
|
-
version:
|
|
180
|
+
version: 2.0.0
|
|
181
181
|
- !ruby/object:Gem::Dependency
|
|
182
182
|
name: byebug
|
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -276,6 +276,7 @@ files:
|
|
|
276
276
|
- bin/setup
|
|
277
277
|
- lib/bbk/app.rb
|
|
278
278
|
- lib/bbk/app/dispatcher.rb
|
|
279
|
+
- lib/bbk/app/dispatcher/direct_stream_strategy.rb
|
|
279
280
|
- lib/bbk/app/dispatcher/message.rb
|
|
280
281
|
- lib/bbk/app/dispatcher/message_stream.rb
|
|
281
282
|
- lib/bbk/app/dispatcher/queue_stream_strategy.rb
|