Ejemplo n.º 1
0
def load_huey(path):
    try:
        return load_class(path)
    except:
        cur_dir = os.getcwd()
        if cur_dir not in sys.path:
            sys.path.insert(0, cur_dir)
            return load_huey(path)
        err('Error importing %s' % path)
        raise
Ejemplo n.º 2
0
def load_huey(path):
    try:
        return load_class(path)
    except:
        cur_dir = os.getcwd()
        if cur_dir not in sys.path:
            sys.path.insert(0, cur_dir)
            return load_huey(path)
        err('Error importing %s' % path)
        raise
Ejemplo n.º 3
0
def dynamic_import(obj, key, required=False):
    try:
        path = obj[key]
    except KeyError:
        if required:
            config_error('Missing required configuration: "%s"' % key)
        return None
    try:
        return load_class(path + '.Components')
    except ImportError:
        config_error('Unable to import %s: "%s"' % (key, path))
Ejemplo n.º 4
0
def dynamic_import(obj, key, required=False):
    try:
        path = obj[key]
    except KeyError:
        if required:
            config_error('Missing required configuration: "%s"' % key)
        return None
    try:
        return load_class(path + '.Components')
    except ImportError:
        config_error('Unable to import %s: "%s"' % (key, path))
Ejemplo n.º 5
0
def main():
    os.nice(10)
    parser_handler = OptionParserHandler()
    parser = parser_handler.get_option_parser()
    options, args = parser.parse_args()
    options = {k: v for k, v in options.__dict__.items()
           if v is not None}
    defaultConf = {'workers': workers, 'worker_type': 'process'}
    config = ConsumerConfig(**collections.ChainMap(options,defaultConf))
    config.validate()

    huey_instance = load_class("lcars.settings.HUEY")

    logger = logging.getLogger('huey')
    config.setup_logger(logger)
    consumer =  huey_instance.create_consumer(**config.values)
    consumer.run()
Ejemplo n.º 6
0
"""

config = getattr(settings, 'HUEY_CONFIG', None)
if not config or 'QUEUE' not in config:
    print configuration_message
    sys.exit(1)

queue = config['QUEUE']

if 'default' in settings.DATABASES:
    backup_name = settings.DATABASES['default']['NAME'].rsplit('/', 1)[-1]
else:
    backup_name = 'huey'

if isinstance(queue, basestring):
    QueueClass = load_class(queue)
    queue = QueueClass(
        config.get('QUEUE_NAME', backup_name),
        **config.get('QUEUE_CONNECTION', {})
    )
    config['QUEUE'] = queue

result_store = config.get('RESULT_STORE', None)

if isinstance(result_store, basestring):
    DataStoreClass = load_class(result_store)
    result_store = DataStoreClass(
        config.get('RESULT_STORE_NAME', backup_name),
        **config.get('RESULT_STORE_CONNECTION', {})
    )
    config['RESULT_STORE'] = result_store
Ejemplo n.º 7
0
    options, args = parser.parse_args()

    if options.verbose is None:
        loglevel = logging.INFO
    elif options.verbose:
        loglevel = logging.DEBUG
    else:
        loglevel = logging.ERROR

    if len(args) == 0:
        err('Error:   missing import path to `Huey` instance')
        err('Example: huey_consumer.py app.queue.huey_instance')
        sys.exit(1)

    try:
        huey_instance = load_class(args[0])
    except:
        err('Error importing %s' % args[0])
        raise

    consumer = Consumer(
        huey_instance,
        options.logfile,
        loglevel,
        options.workers,
        options.periodic,
        options.initial_delay,
        options.backoff,
        options.max_delay,
        options.utc)
    consumer.run()
Ejemplo n.º 8
0
"""

config = getattr(settings, 'HUEY_CONFIG', None)
if not config or 'QUEUE' not in config:
    print configuration_message
    sys.exit(1)

queue = config['QUEUE']

if 'default' in settings.DATABASES:
    backup_name = settings.DATABASES['default']['NAME'].rsplit('/', 1)[-1]
else:
    backup_name = 'huey'

if isinstance(queue, basestring):
    QueueClass = load_class(queue)
    queue = QueueClass(config.get('QUEUE_NAME', backup_name),
                       **config.get('QUEUE_CONNECTION', {}))
    config['QUEUE'] = queue

result_store = config.get('RESULT_STORE', None)

if isinstance(result_store, basestring):
    DataStoreClass = load_class(result_store)
    result_store = DataStoreClass(config.get('RESULT_STORE_NAME', backup_name),
                                  **config.get('RESULT_STORE_CONNECTION', {}))
    config['RESULT_STORE'] = result_store

task_store = config.get('TASK_STORE', None)

if isinstance(task_store, basestring):
Ejemplo n.º 9
0
    parser.add_option('--localtime',
                      dest='utc',
                      action='store_false',
                      help='use local time for all tasks')
    return parser


if __name__ == '__main__':
    parser = get_option_parser()
    options, args = parser.parse_args()

    setup_logger(get_loglevel(options.verbose), options.logfile)

    if len(args) == 0:
        err('Error:   missing import path to `Huey` instance')
        err('Example: huey_consumer.py app.queue.huey_instance')
        sys.exit(1)

    try:
        huey_instance = load_class(args[0])
    except:
        err('Error importing %s' % args[0])
        raise

    consumer = Consumer(huey_instance, options.workers, options.periodic,
                        options.initial_delay, options.backoff,
                        options.max_delay, options.utc,
                        options.scheduler_interval,
                        options.periodic_task_interval)
    consumer.run()