evt-message_store-postgres 2.4.2.0 → 2.4.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 948f4e8a07cbe4f9536d9c329f30fd80b55bb27510ea09db1e93e10fe300f168
4
- data.tar.gz: 1369ce9e59e7aea5e9193d812bc13e899fc31d4f411e2bc56fb8df8bca58f859
3
+ metadata.gz: 783bbb06bda7af60c00b66718b7021bee6256015988750a57140ff5ae5341543
4
+ data.tar.gz: c4c78ce65e907449deb15fcc0d3cc967d54d8d30f7b6b739a8ccba3bac16f3b1
5
5
  SHA512:
6
- metadata.gz: 833c64adcfce89461d79fdac75a499de2a2a3717b66a03baa1a0fe9096874d837371c93542668bf43fd7546cda738476e100931936021e11dfbe033e7a4f827d
7
- data.tar.gz: e1fa0aecef6d081613ec26e8647c22e875e9135f8c174f9f93db6867bc88f059086a8125f9e226fc6a9b9811377d09cdc1c7781df96a5a51d42c385d31de133f
6
+ metadata.gz: 5962708259cb74332b6541a7db9f718891b602e5f6b65f879293f346c101d2da0c46c70a2e7082b2553fb835c0b46f6f4c475f26ebe765d2fcf7bc1651b2d442
7
+ data.tar.gz: 50d0e5972458e886a69cce45aff22c51cf7f55b712914133b912b1f12e7df94a3791df3b73304dd31a7119b1a81168d601ecbe0f9cc9ca37e2c2e3e09a55b4c6
@@ -0,0 +1,7 @@
1
+ module MessageStore
2
+ module Postgres
3
+ module Controls
4
+ Time = MessageStore::Controls::Time
5
+ end
6
+ end
7
+ end
@@ -1,5 +1,6 @@
1
1
  require 'message_store/controls'
2
2
 
3
+ require 'message_store/postgres/controls/time'
3
4
  require 'message_store/postgres/controls/position'
4
5
  require 'message_store/postgres/controls/category'
5
6
  require 'message_store/postgres/controls/stream_name'
@@ -3,10 +3,13 @@ module MessageStore
3
3
  class Session
4
4
  Error = Class.new(RuntimeError)
5
5
 
6
+ include Dependency
6
7
  include Settings::Setting
7
8
 
8
9
  include Log::Dependency
9
10
 
11
+ dependency :clock, Clock::UTC
12
+
10
13
  def self.settings
11
14
  Settings.names
12
15
  end
@@ -16,12 +19,17 @@ module MessageStore
16
19
  end
17
20
 
18
21
  attr_accessor :connection
22
+ attr_accessor :executed_time
19
23
 
20
24
  def self.build(settings: nil)
21
- new.tap do |instance|
22
- settings ||= Settings.instance
23
- settings.set(instance)
24
- end
25
+ instance = new
26
+
27
+ settings ||= Settings.instance
28
+ settings.set(instance)
29
+
30
+ Clock::UTC.configure(instance)
31
+
32
+ instance
25
33
  end
26
34
 
27
35
  def self.configure(receiver, session: nil, settings: nil, attr_name: nil)
@@ -91,15 +99,6 @@ module MessageStore
91
99
  connection.reset
92
100
  end
93
101
 
94
- def settings
95
- settings = {}
96
- self.class.settings.each do |s|
97
- val = public_send(s)
98
- settings[s] = val unless val.nil?
99
- end
100
- settings
101
- end
102
-
103
102
  def execute(sql_command, params=nil)
104
103
  logger.trace(tag: :session) { "Executing SQL command" }
105
104
  logger.trace(tag: :sql) { sql_command }
@@ -109,17 +108,27 @@ module MessageStore
109
108
  connect
110
109
  end
111
110
 
111
+ executed_time = nil
112
+
112
113
  if params.nil?
113
114
  connection.exec(sql_command).tap do
115
+ self.executed_time = clock.now
114
116
  logger.debug(tag: :session) { "Executed SQL command (no params)" }
115
117
  end
116
118
  else
117
119
  connection.exec_params(sql_command, params).tap do
120
+ self.executed_time = clock.now
118
121
  logger.debug(tag: :session) { "Executed SQL command with params" }
119
122
  end
120
123
  end
121
124
  end
122
125
 
126
+ def executed_time_elapsed_milliseconds
127
+ return nil if executed_time.nil?
128
+
129
+ (clock.now - executed_time) * 1000
130
+ end
131
+
123
132
  def transaction(&blk)
124
133
  unless connected?
125
134
  connect
@@ -136,6 +145,15 @@ module MessageStore
136
145
  escaped_data
137
146
  end
138
147
 
148
+ def settings
149
+ settings = {}
150
+ self.class.settings.each do |s|
151
+ val = public_send(s)
152
+ settings[s] = val unless val.nil?
153
+ end
154
+ settings
155
+ end
156
+
139
157
  def self.logger
140
158
  @logger ||= Log.get self
141
159
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-message_store-postgres
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.2.0
4
+ version: 2.4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
8
  autorequire:
9
9
  bindir: scripts
10
10
  cert_chain: []
11
- date: 2021-03-05 00:00:00.000000000 Z
11
+ date: 2022-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-message_store
@@ -135,6 +135,7 @@ files:
135
135
  - lib/message_store/postgres/controls/position.rb
136
136
  - lib/message_store/postgres/controls/put.rb
137
137
  - lib/message_store/postgres/controls/stream_name.rb
138
+ - lib/message_store/postgres/controls/time.rb
138
139
  - lib/message_store/postgres/get.rb
139
140
  - lib/message_store/postgres/get/category.rb
140
141
  - lib/message_store/postgres/get/category/consumer_group.rb
@@ -167,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
168
  - !ruby/object:Gem::Version
168
169
  version: '0'
169
170
  requirements: []
170
- rubygems_version: 3.1.2
171
+ rubygems_version: 3.3.3
171
172
  signing_key:
172
173
  specification_version: 4
173
174
  summary: Message store implementation for PostgreSQL