lib/modern_times/manager.rb in modern_times-0.2.11 vs lib/modern_times/manager.rb in modern_times-0.3.0

- old
+ new

@@ -9,15 +9,15 @@ def initialize(config={}) @stopped = false @config = config @domain = config[:domain] || ModernTimes::DEFAULT_DOMAIN @supervisors = [] + @dummy_host = config[:dummy_host] self.persist_file = config[:persist_file] self.worker_file = config[:worker_file] @allowed_workers = config[:allowed_workers] stop_on_signal if config[:stop_on_signal] - @dummy_host = config[:dummy_host] # Unless specifically unconfigured (i.e., Rails.env == test), then enable jmx if config[:jmx] != false @jmx_server = JMX::MBeanServer.new bean = ManagerMBean.new(@domain, self) @jmx_server.register_mbean(bean, ModernTimes.manager_mbean_object_name(@domain)) @@ -58,10 +58,11 @@ return if @started @started = true end def stop + return if @stopped @stopped = true @supervisors.each { |supervisor| supervisor.stop } end def join @@ -79,22 +80,24 @@ end end end def persist_file=(file) + return if @persist_file == file + @persist_file = nil return unless file - @persist_file = file if File.exist?(file) hash = YAML.load_file(file) hash.each do |worker_name, worker_hash| klass = worker_hash[:klass] count = worker_hash[:count] options = worker_hash[:options] options[:name] = worker_name add(klass, count, options) end end + @persist_file = file end def save_persist_state return unless @persist_file hash = {} @@ -104,9 +107,10 @@ :count => supervisor.worker_count, :options => supervisor.worker_options } end File.open(@persist_file, 'w') do |out| + YAML.dump(hash, out ) YAML.dump(hash, out ) end end def find_supervisor(name)