示例#1
0
文件: server.py 项目: YotamEN/abra
def publish_msg(msg):
    mq_handler = None
    try:
        mq_handler = RabbitMQHandler(_publish)
    except UnsupportedMessageQueueError as e:
        print(e)
        exit(FAIL)
    mq_handler.publish_to_parsers(msg)
示例#2
0
文件: server.py 项目: YotamEN/abra
def publish_user(user):
    mq_handler = None
    try:
        mq_handler = RabbitMQHandler(_publish)
    except UnsupportedMessageQueueError as e:
        print(e)
        exit(FAIL)
    mq_handler.publish_to_parsed_data_exchange(msg=user, topic="user")
示例#3
0
文件: saver.py 项目: YotamEN/Abra11
    def register_to_topics(self, topics, mq_url):
        for topic in topics:
            if topic not in TOPICS:
                raise UnsupportedTopic(f"ERROR: topic '{topic}' is unrecognized. Known topics: {TOPICS!r}")

        def callback(ch, method, props, body):
            self.save_wrapper(body)

        mq_h = RabbitMQHandler(mq_url)
        mq_h.consume_parsed_data_exchange_by_topic(callback=callback, topics=topics)
示例#4
0
def run_parser_cli(parser: str, mq_url: str):
    parser = parser.lower()
    if parser not in PARSER_NAMES:
        raise UnknownParserError()
    parser_h = get_parser(parser)
    mq_handler = RabbitMQHandler(mq_url)

    def on_message(ch, method, props, body):
        data = json.loads(body)
        user_id, snap_id, path = data[USER_ID_KEY], data[SNAPSHOT_ID_KEY], data[USER_SNAPSHOTS_URL_KEY]
        snapshot = load_snapshot(path)  # Snapshot class
        parsed_data = parser_h.parse(msg=snapshot)
        wrapped_parsed_data = wrap_parsed_data(parsed_data, parser, user_id, snap_id)
        parsed_data_json = json.dumps(wrapped_parsed_data)
        mq_handler.publish_to_parsed_data_exchange(msg=parsed_data_json, topic=parser)

    # runs forever... stops on CTRL-C
    mq_handler.consume_queue(queue=parser, callback=on_message)
示例#5
0
文件: __main__.py 项目: YotamEN/abra
def run_parser_cli(parser: str, mq_url: str):
    parser = parser.lower()
    if parser not in PARSER_NAMES:
        print(f"Unknown parser! please choose one of the following:\n{PARSER_NAMES!r}")
        exit(FAIL)
    parser_h = get_parser(parser)
    mq_handler = None
    try:
        mq_handler = RabbitMQHandler(mq_url)
    except UnsupportedMessageQueueError as e:
        print(e)
        exit(FAIL)

    def on_message(ch, method, props, body):
        data = json.loads(body)
        user_id, snap_id, path = data[USER_ID_KEY], data[SNAPSHOT_ID_KEY], data[USER_SNAPSHOTS_URL_KEY]
        snapshot = load_snapshot(path)  # Snapshot class
        parsed_data = parser_h.parse(msg=snapshot)
        wrapped_parsed_data = wrap_parsed_data(parsed_data, parser, user_id, snap_id)
        parsed_data_json = json.dumps(wrapped_parsed_data)
        mq_handler.publish_to_parsed_data_exchange(msg=parsed_data_json, topic=parser)

    # runs forever... stops on CTRL-C
    mq_handler.consume_queue(queue=parser, callback=on_message)
示例#6
0
文件: server.py 项目: YotamEN/Abra11
def publish_user(user):
    print(user)
    mq_handler = RabbitMQHandler(_publish)
    mq_handler.publish_to_parsed_data_exchange(msg=user, topic="user")
示例#7
0
文件: server.py 项目: YotamEN/Abra11
def publish_msg(msg):
    mq_handler = RabbitMQHandler(_publish)
    mq_handler.publish_to_parsers(msg)