Пример #1
0
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()
Пример #2
0
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)))