示例#1
0
文件: consumer.py 项目: mSOHU/arkham
    def __init__(self, worker_cls, consumer, config_path, consumer_name):
        self.consumer = consumer
        self.logger = self.consumer.logger = self.consumer.logger or LOGGER
        self.logger.setLevel(getattr(logging, self.consumer.log_level))

        # setup flags
        self.inactivate_state = False
        self.stop_flag = False
        self.last_slept = 0
        self.last_activity = time.time()

        # for IDE
        self.generator = []

        self.logger.info('Using %s: %r', worker_cls.__name__, worker_cls)
        self.worker = worker_cls(self)

        ArkhamService.init_config(config_path)
        self.subscriber = ArkhamService.get_instance(consumer_name)

        self.setup_signal_handler()
        if self.consumer.enable_healthy_checker:
            self.setup_healthy_checker()

        self.callbacks = collect_period_callbacks(self.consumer)
示例#2
0
    def __init__(self, consumer, config_path, consumer_name):
        self.consumer = consumer
        self.logger = self.consumer.logger = self.consumer.logger or LOGGER
        self.logger.setLevel(getattr(logging, self.consumer.log_level))

        # setup flags
        self.inactivate_state = False
        self.stop_flag = False
        self.last_activity = time.time()

        # for IDE
        self.generator = []

        # early initialize worker so gevent can patch in time.
        assert self.consumer.worker_class in self.WORKER_CLASSES, (
            "Unsupported worker class: `%s`" % self.consumer.worker_class
        )
        worker_class = self.WORKER_CLASSES[self.consumer.worker_class]
        self.logger.info("Using %s worker: %r", self.consumer.worker_class, worker_class)
        self.worker = worker_class(self)

        ArkhamService.init_config(config_path)
        self.subscriber = ArkhamService.get_instance(consumer_name)

        self.setup_signal_handler()
        self.setup_healthy_checker()

        self.callbacks = collect_period_callbacks(self.consumer)
示例#3
0
def rpc_entry():
    cmd_args = parse_arguments()

    ArkhamService.init_config(find_config(cmd_args.config_path, cmd_args.entry_point))
    server = load_entry_point(cmd_args.entry_point)

    assert isinstance(server, ArkhamRPCServer), 'consumer class must be subclass of ArkhamRPCServer'
    server.start(cmd_args.consumer_name)