bbk-app 1.1.1.289665 → 1.1.2.294476
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 +2 -2
- data/README.md +79 -21
- data/lib/bbk/app/dispatcher.rb +6 -2
- data/lib/bbk/app/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48d4c5f17dd7b744178733bf2834f5452bdc6db5d01be68384114e20dff96aa3
|
4
|
+
data.tar.gz: ac052d0e46715d46a2f092dc5bbd8b8c520ba4b14873bce5c863f9fa8188b66e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cd54852700029c10c8e6ca029f371af7f5c3819e63088bb17aa958e6fe48dfc3983d102d3d3bb5ff01595fe189c6c90cf7d592c7072e155a04d2d2ac2cab13b
|
7
|
+
data.tar.gz: ab80b4799e63cb2510faac6998f50368385c22ff8c072833a7a02128f4ff0d923132b5c60f3c26a877d4de1c77584f70b52d15e83a00971134b0cd035bcbb416
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
bbk-app (1.1.
|
4
|
+
bbk-app (1.1.2.294476)
|
5
5
|
activesupport (>= 6.0)
|
6
6
|
bbk-utils (> 1.0.1)
|
7
7
|
oj
|
@@ -69,7 +69,7 @@ GEM
|
|
69
69
|
addressable (~> 2.7)
|
70
70
|
mini_portile2 (2.8.8)
|
71
71
|
minitest (5.15.0)
|
72
|
-
oj (3.16.
|
72
|
+
oj (3.16.10)
|
73
73
|
bigdecimal (>= 3.0)
|
74
74
|
ostruct (>= 0.2)
|
75
75
|
ostruct (0.6.1)
|
data/README.md
CHANGED
@@ -2,42 +2,100 @@
|
|
2
2
|
|
3
3
|
Classes for building services based on BBK stack.
|
4
4
|
|
5
|
-
## Installation
|
6
5
|
|
7
|
-
|
6
|
+
## События ActiveSupport::Notifications
|
7
|
+
|
8
|
+
Подписка на события `BBK::Dispatcher`:
|
8
9
|
|
9
10
|
```ruby
|
10
|
-
|
11
|
+
ActiveSupport::Notifications.subscribe "dispatcher.run" do |event|
|
12
|
+
event.name # => "dispatcher.run"
|
13
|
+
event.duration # => 10 (in milliseconds)
|
14
|
+
event.allocations # => 1826
|
15
|
+
event.payload # => {:extra=>information}
|
11
16
|
|
12
|
-
|
13
|
-
# ...
|
14
|
-
spec.add_dependency "bbk-app", "~> 1.0.0"
|
15
|
-
# ...
|
17
|
+
Rails.logger.info "#{event} Received!"
|
16
18
|
end
|
17
19
|
```
|
18
20
|
|
19
|
-
|
21
|
+
### BBK::Dispatcher
|
20
22
|
|
21
|
-
|
22
|
-
# Gemfile
|
23
|
+
#### 'dispatcher.run'
|
23
24
|
|
24
|
-
|
25
|
-
|
25
|
+
Момент запуска блокирующего чтения сообщений из всех `BBK::Consumer`
|
26
|
+
|
27
|
+
| Ключ | Значение |
|
28
|
+
| :------------ | :----------------------- |
|
29
|
+
| `:dispatcher` | Объект `BBK::Dispatcher` |
|
30
|
+
|
31
|
+
|
32
|
+
#### 'dispatcher.close'
|
33
|
+
|
34
|
+
Момент остановки `BBK::Dispatcher`, перед остановкой всех `BBK::Consumer#close`
|
35
|
+
|
36
|
+
| Ключ | Значение |
|
37
|
+
| :------------ | :----------------------- |
|
38
|
+
| `:dispatcher` | Объект `BBK::Dispatcher` |
|
39
|
+
|
40
|
+
#### 'dispatcher.process'
|
41
|
+
|
42
|
+
Исключение при обработки входящего сообщения
|
43
|
+
|
44
|
+
| Ключ | Значение |
|
45
|
+
| :----------- | :------------------------------------ |
|
46
|
+
| `:msg` | Объект `BBK::Message` (его наследник) |
|
47
|
+
| `:exception` | Стандартный массив [`Exception`] |
|
48
|
+
|
49
|
+
|
50
|
+
#### 'dispatcher.exception'
|
51
|
+
|
52
|
+
> **! Устарело !** Вместо него надо использольвать `dispatcher.process`
|
53
|
+
|
54
|
+
Исключение при обработки входящего сообщения
|
55
|
+
|
56
|
+
| Ключ | Значение |
|
57
|
+
| :----------- | :------------------------------------ |
|
58
|
+
| `:msg` | Объект `BBK::Message` (его наследник) |
|
59
|
+
| `:exception` | Объект `Exception` |
|
60
|
+
|
61
|
+
|
62
|
+
#### 'dispatcher.request.process'
|
63
|
+
|
64
|
+
Обработка входящего сообщения
|
65
|
+
|
66
|
+
| Ключ | Значение |
|
67
|
+
| :----------- | :----------------------------------------------------------------------- |
|
68
|
+
| `:msg` | Объект `BBK::Message` (его наследник) |
|
69
|
+
| `:match` | Объект `Hash`, содержащий поля, по которым найден обработчик (Processor) |
|
70
|
+
| `:processor` | Объект `Processor`, выполняющий обработку |
|
71
|
+
| `:unknown` | `Boolean` - сообщение не попало ни под один обработчик (Processor) |
|
72
|
+
| `:exception` | Стандартный массив [`Exception`] |
|
73
|
+
|
74
|
+
|
75
|
+
#### 'dispatcher.request.exception'
|
76
|
+
|
77
|
+
> **! Устарело !** Вместо него надо использольвать `ispatcher.request.process`
|
78
|
+
|
79
|
+
Обработка входящего сообщения
|
80
|
+
|
81
|
+
| Ключ | Значение |
|
82
|
+
| :----------- | :----------------------------------------------------------------------- |
|
83
|
+
| `:msg` | Объект `BBK::Message` (его наследник) |
|
84
|
+
| `:match` | Объект `Hash`, содержащий поля, по которым найден обработчик (Processor) |
|
85
|
+
| `:processor` | Объект `Processor`, выполняющий обработку |
|
86
|
+
| `:exception` | Объект `Exception` |
|
26
87
|
|
27
|
-
### Supported Ruby versions
|
28
88
|
|
29
|
-
|
89
|
+
#### 'dispatcher.request.result_rejected'
|
30
90
|
|
31
|
-
|
91
|
+
Обработка входящего сообщения
|
32
92
|
|
33
|
-
|
34
|
-
|
93
|
+
| Ключ | Значение |
|
94
|
+
| :--------- | :------------------------------------ |
|
95
|
+
| `:msg` | Объект `BBK::Message` (его наследник) |
|
96
|
+
| `:message` | `String` с текстом ошибки |
|
35
97
|
|
36
|
-
## Contributing
|
37
98
|
|
38
|
-
See the file [CONTRIBUTING.md](./CONTRIBUTING.md)
|
39
99
|
|
40
|
-
## License
|
41
100
|
|
42
|
-
See the file [LICENSE](./LICENSE)
|
43
101
|
|
data/lib/bbk/app/dispatcher.rb
CHANGED
@@ -135,9 +135,12 @@ module BBK
|
|
135
135
|
return
|
136
136
|
end
|
137
137
|
logger.debug "There are #{results.count} results to send from #{message.headers[:message_id]}..."
|
138
|
-
|
138
|
+
ActiveSupport::Notifications.instrument 'dispatcher.process', msg: message do
|
139
|
+
send_results(message, results).value
|
140
|
+
end
|
139
141
|
rescue StandardError => e
|
140
142
|
logger.error "Failed processing message: #{e.inspect}"
|
143
|
+
# это событие устарело, вместо него надо использовать `dispatcher.process`
|
141
144
|
ActiveSupport::Notifications.instrument 'dispatcher.exception', msg: message, exception: e
|
142
145
|
message.nack(error: e)
|
143
146
|
close if force_quit
|
@@ -151,7 +154,7 @@ module BBK
|
|
151
154
|
begin
|
152
155
|
is_unknown = @observer.instance_variable_get('@default') == processor
|
153
156
|
ActiveSupport::Notifications.instrument 'dispatcher.request.process', msg: message,
|
154
|
-
match: matched, unknown: is_unknown do
|
157
|
+
match: matched, unknown: is_unknown, processor: processor do
|
155
158
|
processor.call(message, results: results)
|
156
159
|
end
|
157
160
|
rescue StandardError => e
|
@@ -164,6 +167,7 @@ match: matched, unknown: is_unknown do
|
|
164
167
|
end
|
165
168
|
[results].flatten
|
166
169
|
rescue StandardError => e
|
170
|
+
# это событие устарело, вместо него надо использовать `dispatcher.request.process`
|
167
171
|
ActiveSupport::Notifications.instrument 'dispatcher.request.exception', msg: message,
|
168
172
|
match: matched, processor: processor, exception: e
|
169
173
|
raise
|
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.2.294476
|
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-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|