mysql-pause 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,2 +1,2 @@
1
1
  APP_NAME = 'mysql-pause'
2
- Version = '0.1.6'
2
+ Version = '0.1.7'
@@ -5,6 +5,9 @@ require 'logger'
5
5
  require 'socket'
6
6
 
7
7
  module MysqlPause
8
+ RETRY_LIMIT = 100
9
+ RETRY_INTERVAL = 3
10
+
8
11
  class Proxy < EM::Connection
9
12
  attr_reader :options
10
13
  attr_reader :logger
@@ -13,15 +16,25 @@ module MysqlPause
13
16
  @options = options
14
17
  @logger = Logger.new($stdout)
15
18
 
19
+ n = 0
20
+
16
21
  begin
17
22
  ping(be_host, be_port)
18
23
  @backend = EM.connect(be_host, be_port, MysqlPause::Backend, self)
19
- raise('connect error') if @backend.error?
24
+ raise('connection error') if @backend.error?
20
25
  rescue => e
21
26
  @logger.error("#{e.class.name}: #{e.message}")
22
- close_backend_connection
23
- sleep(@options[:interval])
24
- retry
27
+
28
+ if n < RETRY_LIMIT
29
+ close_backend_connection
30
+ sleep RETRY_INTERVAL
31
+ @logger.warn("connection retry")
32
+ n += 1
33
+ retry
34
+ else
35
+ @logger.error("connection abort")
36
+ raise e
37
+ end
25
38
  end
26
39
  end
27
40
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mysql-pause
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: