lib/modern_times/manager.rb in modern_times-0.2.6 vs lib/modern_times/manager.rb in modern_times-0.2.7

- old
+ new

@@ -9,15 +9,21 @@ def initialize(config={}) @stopped = false @config = config @domain = config[:domain] || ModernTimes::DEFAULT_DOMAIN @supervisors = [] - @jmx_server = JMX::MBeanServer.new - bean = ManagerMBean.new(@domain, self) - @jmx_server.register_mbean(bean, ModernTimes.manager_mbean_object_name(@domain)) 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)) + end end def add(worker_klass, num_workers, worker_options={}) ModernTimes.logger.info "Starting #{worker_klass} with #{num_workers} workers with options #{worker_options.inspect}" unless worker_klass.kind_of?(Class) @@ -30,13 +36,15 @@ if @allowed_workers && !@allowed_workers.include?(worker_klass) raise "Error: #{worker_klass.name} is not an allowed worker" end supervisor = worker_klass.create_supervisor(self, worker_options) raise "A supervisor with name #{supervisor.name} already exists" if find_supervisor(supervisor.name) - mbean = supervisor.create_mbean(@domain) @supervisors << supervisor supervisor.worker_count = num_workers - @jmx_server.register_mbean(mbean, "#{@domain}:worker=#{supervisor.name},type=Worker") + if @jmx_server + mbean = supervisor.create_mbean(@domain) + @jmx_server.register_mbean(mbean, "#{@domain}:worker=#{supervisor.name},type=Worker") + end ModernTimes.logger.info "Started #{worker_klass.name} named #{supervisor.name} with #{num_workers} workers" rescue Exception => e ModernTimes.logger.error "Exception trying to add #{worker_klass}: #{e.message}\n\t#{e.backtrace.join("\n\t")}" raise rescue java.lang.Exception => e