Class: MysqlPause::Server

Inherits:
RExec::Daemon::Base show all
Defined in:
lib/mysql-pause/server.rb

Class Method Summary collapse

Methods inherited from RExec::Daemon::Base

daemon_name

Class Method Details

.options=(options) ⇒ Object



17
18
19
20
# File 'lib/mysql-pause/server.rb', line 17

def options=(options)
  @@options = options
  @@base_directory = options[:working_dir]
end

.runObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/mysql-pause/server.rb', line 22

def run
  @@control_options = {
    :pause        => false,
    :interval     => @@options[:interval],
    :debug        => @@options[:debug],
    :ping_user    => @@options[:ping_user],
    :ping_pass    => @@options[:ping_pass],
  }

  # start DRb
  FileUtils.rm_f(@@options[:socket])
  DRb.start_service("drbunix:#{@@options[:socket]}", @@control_options)
  File.chmod(0700, @@options[:socket])
  at_exit { FileUtils.rm_f(@@options[:socket]) }

  EM.epoll
  EM.threadpool_size = @@options[:threads] if @@options[:threads]

  EM.run {
    EM.start_server(
      @@options[:addr], @@options[:port], MysqlPause::Proxy,
      @@options[:backend_addr], @@options[:backend_port], @@control_options)
  }
end