commit | 58397dc86d85d1b16a4d949c430e7499722050b5 | [log] [tgz] |
---|---|---|
author | ziyht <joyhaitao@foxmail.com> | Tue Oct 13 04:09:40 2020 +0800 |
committer | GitHub <noreply@github.com> | Tue Oct 13 04:09:40 2020 +0800 |
tree | b3970ed32614f3b23dbeff6d96d5be6ed514929f | |
parent | 9a38c4314abbc290396c75de28054898214c3d3f [diff] |
[ISSUE #96] Fix the memory leak in Message (#98) Message created by cpp library not released in class Message
RocketMQ Python client, based on rocketmq-client-cpp, supports Linux and macOS
librocketmq
rocketmq-client-python is a lightweight wrapper around rocketmq-client-cpp, so you need install librocketmq
first.
download specific release according you OS: rocketmq-client-cpp-2.0.0
centos
take centos7 as example, you can install the library in centos6 by the same method.
wget https://github.com/apache/rocketmq-client-cpp/releases/download/2.0.0/rocketmq-client-cpp-2.0.0-centos7.x86_64.rpm sudo rpm -ivh rocketmq-client-cpp-2.0.0-centos7.x86_64.rpm
debian
wget https://github.com/apache/rocketmq-client-cpp/releases/download/2.0.0/rocketmq-client-cpp-2.0.0.amd64.deb sudo dpkg -i rocketmq-client-cpp-2.0.0.amd64.deb
macOS
wget https://github.com/apache/rocketmq-client-cpp/releases/download/2.0.0/rocketmq-client-cpp-2.0.0-bin-release.darwin.tar.gz tar -xzf rocketmq-client-cpp-2.0.0-bin-release.darwin.tar.gz cd rocketmq-client-cpp mkdir /usr/local/include/rocketmq cp include/* /usr/local/include/rocketmq cp lib/* /usr/local/lib install_name_tool -id "@rpath/librocketmq.dylib" /usr/local/lib/librocketmq.dylib
you can also build it manually from source according to Build and Install
pip install rocketmq-client-python
from rocketmq.client import Producer, Message producer = Producer('PID-XXX') producer.set_name_server_address('127.0.0.1:9876') producer.start() msg = Message('YOUR-TOPIC') msg.set_keys('XXX') msg.set_tags('XXX') msg.set_body('XXXX') ret = producer.send_sync(msg) print(ret.status, ret.msg_id, ret.offset) producer.shutdown()
import time from rocketmq.client import PushConsumer, ConsumeStatus def callback(msg): print(msg.id, msg.body) return ConsumeStatus.CONSUME_SUCCESS consumer = PushConsumer('CID_XXX') consumer.set_name_server_address('127.0.0.1:9876') consumer.subscribe('YOUR-TOPIC', callback) consumer.start() while True: time.sleep(3600) consumer.shutdown()
Apache License, Version 2.0 Copyright (C) Apache Software Foundation