pgtk 0.31.2 → 0.31.3

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pgtk/pool.rb +12 -1
  3. data/lib/pgtk/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b7db2cc332dfccb4c405f590cc7aa64ffc55d1aa916aea3c0ea68379208c2568
4
- data.tar.gz: c7a03b2c8b6ccf2b931b1ab4d16bf83f352edeb0099c1d5fcc8f21a5f274a789
3
+ metadata.gz: ce069bed0f29101349d2617ad2ae7c51f4f03e6b6a4b800d717bf4ac75bb533f
4
+ data.tar.gz: 81e34a18fdf26fea4545e33f5c554af8b17f74f75e0a8efe450dea16fa13df49
5
5
  SHA512:
6
- metadata.gz: d0e7ca8dc2192a5acb274b9e4b02fda11fdfaf471fe607c7d5d8ac0cf85cd8b527bb35f3de93f271102ba4b483a285452df5d6e1f308df8f503e987b42b10197
7
- data.tar.gz: d028000b4d1e869d9766105a7706f8b415f012a1c6f3254f2c2bdd6bb8578b97f27fd22f317cc06f7609ca3b79667814d60ca1713b21be3145a51b1b41e5d752
6
+ metadata.gz: fea29eaaef7f045eec87fd114d5ba55782d50332333169ab30012bbf9e221dd2c3ef1be57af808f4aa1986b5356e27a8b25ce144c52bcaad3ad8329772eb81a2
7
+ data.tar.gz: c84f1647c650b98ff6e34e752184a922ec74c285c55dcfa26714c50280a09bb5cf6bf3ff6e40dee0c5f03a39aa0aa30396ad7ffd30b05859d981eb67c2697437
data/lib/pgtk/pool.rb CHANGED
@@ -343,16 +343,27 @@ class Pgtk::Pool
343
343
 
344
344
  def connect
345
345
  conn = @pool.pop
346
+ conn = renew(conn) if dead?(conn)
346
347
  begin
347
348
  yield(conn)
348
349
  rescue StandardError => e
349
- conn = renew(conn)
350
+ begin
351
+ conn = renew(conn)
352
+ rescue StandardError => re
353
+ @log.warn("Failed to renew connection after #{e.message}: #{re.message}")
354
+ end
350
355
  raise(e)
351
356
  ensure
352
357
  @pool.push(conn)
353
358
  end
354
359
  end
355
360
 
361
+ def dead?(conn)
362
+ conn.finished? || conn.status == PG::Constants::CONNECTION_BAD
363
+ rescue StandardError
364
+ true
365
+ end
366
+
356
367
  def renew(conn)
357
368
  begin
358
369
  conn.close unless conn.finished?
data/lib/pgtk/version.rb CHANGED
@@ -10,5 +10,5 @@ require_relative '../pgtk'
10
10
  # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
11
11
  # License:: MIT
12
12
  module Pgtk
13
- VERSION = '0.31.2' unless defined?(VERSION)
13
+ VERSION = '0.31.3' unless defined?(VERSION)
14
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgtk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.2
4
+ version: 0.31.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko