hutch-error_handlers-reconnect_active_record 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 931ca32a89a0c3daf6dcb50481a0d2be423fe51f8200b8eae57ff4b524170ac5
4
+ data.tar.gz: 7be20f538938a93bbe650e0f722fbc8fd8d78f14f36cb4e71b3ec3967e354568
5
+ SHA512:
6
+ metadata.gz: a3601b2ab7343a6cde258aca46fa3d25a57aa9a199fca7ce9c53019e7347890b12d0c8c9a4cdb1df4d69da0e40760380b6bb01cf485ba343ba8e8fef337b0201
7
+ data.tar.gz: c555066546f1f92a4bf5a0bb63513c89b7f843eb988b13481cfdbef4ac62e134bebcf95519f1a16a068413f1d24a1d3e3b5923b9cfac5fd4faff8eca772e627d
@@ -0,0 +1,32 @@
1
+ require 'hutch/logging'
2
+ require 'hutch/error_handlers/base'
3
+
4
+ module Hutch
5
+ module ErrorHandlers
6
+ class ReconnectActiveRecord < ErrorHandlers::Base
7
+
8
+ def handle(properties, payload, consumer, ex)
9
+ return unless active_record_exception? ex
10
+
11
+ logger.info "[Reconnect] Got Active RecordException, message: #{ex.message}"
12
+ logger.info '[Reconnect] Attempting to reconnect'
13
+
14
+ ActiveRecord::Base.connection.reconnect!
15
+ logger.info '[Reconnect] Reconnect successful'
16
+ rescue exception
17
+ logger.error "[Reconnect] Unable to reconnect"
18
+ logger.error "[Reconnect] #{exception.class} - #{exception.message}"
19
+ end
20
+
21
+ # Does not seem to be used at all, but the base does define this method
22
+ def handle_setup_exception(ex)
23
+ logger.error "[Reconnect] #{ex.class} - #{ex.message}"
24
+ logger.error (['backtrace:'] + ex.backtrace).join("\n")
25
+ end
26
+
27
+ def active_record_exception?(ex)
28
+ ex.instance_of? ActiveRecord::StatementInvalid
29
+ end
30
+ end
31
+ end
32
+ end
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hutch-error_handlers-reconnect_active_record
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Hélio Nagamachi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-09-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: hutch
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activerecord
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '6.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '6.1'
41
+ description: Add this to your hutch config to try to reconnect whenever there is an
42
+ error with ActiveRecord
43
+ email: 69481759+helionagamachi-basement@users.noreply.github.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - lib/hutch/error_handlers/reconnect_active_record.rb
49
+ homepage: https://github.com/basement-io/hutch-error-handlers-reconnect-active-record
50
+ licenses:
51
+ - MIT
52
+ metadata: {}
53
+ post_install_message:
54
+ rdoc_options: []
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ requirements: []
68
+ rubygems_version: 3.0.3
69
+ signing_key:
70
+ specification_version: 4
71
+ summary: Try to reconnect the active record connection in case of errors
72
+ test_files: []