Module: Synapse::Rails::Linker
- Included in:
- Synapse::Rails
- Defined in:
- lib/synapse/rails/linker.rb
Instance Attribute Summary collapse
-
#synapse_instance ⇒ Object
Returns the value of attribute synapse_instance.
Instance Method Summary collapse
- #add_service_provider(provider) ⇒ Object
- #prepare ⇒ Object
- #services ⇒ Object
- #start ⇒ Object
- #started? ⇒ Boolean
- #synapse ⇒ Object
- #wait ⇒ Object
Instance Attribute Details
#synapse_instance ⇒ Object
Returns the value of attribute synapse_instance.
4 5 6 |
# File 'lib/synapse/rails/linker.rb', line 4 def synapse_instance @synapse_instance end |
Instance Method Details
#add_service_provider(provider) ⇒ Object
5 6 7 8 9 10 11 12 |
# 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 ⇒ Object
25 26 27 |
# File 'lib/synapse/rails/linker.rb', line 25 def prepare @synapse_instance ||= Synapse.new synapse end |
#services ⇒ Object
13 14 15 16 17 |
# 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 ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# 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? ⇒ Boolean
34 35 36 |
# File 'lib/synapse/rails/linker.rb', line 34 def started? @started || false end |
#synapse ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/synapse/rails/linker.rb', line 18 def synapse @synapse ||= { services:services, haproxy:haproxy }.with_indifferent_access unless @started @synapse end |
#wait ⇒ Object
28 29 30 31 32 33 |
# 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 |