module Synapse::Rails::Linker
Attributes
synapse_instance[RW]
Public Instance Methods
add_service_provider(provider)
click to toggle source
# File lib/synapse/rails/linker.rb, line 5 def add_service_provider provider @services ||= [] @services << provider self.define_singleton_method(provider.service_name.to_sym){provider} unless self.respond_to? (provider.service.to_sym) self.define_singleton_method(provider.service.to_sym){provider} end end
prepare()
click to toggle source
# File lib/synapse/rails/linker.rb, line 25 def prepare @synapse_instance ||= Synapse.new synapse end
services()
click to toggle source
# File lib/synapse/rails/linker.rb, line 13 def services @services.collect do |service| [service.service_name,service.synapse] end.to_h.with_indifferent_access end
start()
click to toggle source
# File lib/synapse/rails/linker.rb, line 37 def start prepare @started = true @marshal = Thread.new do synapse_instance.run end at_exit do log = ::Rails.logger if defined? ::Rails.logger if File.exists? pid_file_path pids = File.read(pid_file_path).strip cmd = "kill -9 #{pids}" log.info "HAProxy stop #{pids}" if log `#{cmd}` log.debug "HAProxy unlink #{pid_file_path}" if log File.unlink pid_file_path end if File.exists? socket_file_path log.debug "HAProxy unlink #{socket_file_path}" if log File.unlink socket_file_path end if File.exists? config_file_path log.debug "HAProxy unlink #{config_file_path}" if log File.unlink config_file_path end end wait end
started?()
click to toggle source
# File lib/synapse/rails/linker.rb, line 34 def started? @started || false end
synapse()
click to toggle source
# File lib/synapse/rails/linker.rb, line 18 def synapse @synapse ||= { services:services, haproxy:haproxy }.with_indifferent_access unless @started @synapse end
wait()
click to toggle source
# File lib/synapse/rails/linker.rb, line 28 def wait loop do break unless @synapse_instance.instance_variable_get("@haproxy").instance_variable_get("@restart_required") sleep 0.01 end end