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
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))
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()
""" 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
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()
""" 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):
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()