def run(process_name): """ You should override this method when you subclass Daemon. It will be called after the process has been daemonized by start() or restart(). """ sys.stdout.write('INFO: Starting %s \n' % ProcessContext.get_classname(process_name)) klass = get_class(ProcessContext.get_classname(process_name)) instance = klass(process_name) instance.start()
def start_by_process_name(process_name, *args): """ Function starts the process by: 1. retrieving its fully specified path name 2. if the path name ends with starter method - then creates an instance of the wrapping class and calls <code>starter(*args)</code> method on it 3. if the path name ends with starter function - then retrieves its module and calls <code>starter(*args)</code> function on it """ sys.stdout.write('INFO: Starter path {0} \n'.format(ProcessContext.get_classname(process_name))) t, m, starter = get_class(ProcessContext.get_classname(process_name)) if isinstance(m, class_types): sys.stdout.write('INFO: Starting process by calling starter method {0} \n'.format(starter)) instance = m(process_name) method = getattr(instance, starter) method(*args) elif isinstance(m, types.FunctionType): sys.stdout.write('INFO: Starting module.\n') function = m function(*args) else: raise ValueError('Improper starter path {0}'.format(ProcessContext.get_classname(process_name)))