各位大佬有用过 RocketMQ 的 Python 版的 SDK 吗? 我在使用生产者循环发消息的的时候,内存一直在缓慢上升,不知道是不是使用不当造成的。
Python 版本:3.8.17
rocketmq-client-python 版本:2.0.1rc1 (自己下载的master分支下手动安装的)
代码:
def send_message(producer, body):
try:
message = Message("test")
message.set_body(json.dumps(body))
result = producer.send_sync(message)
print(f"生产者发送消息状态: {str(result.status)} 消息 ID: {result.msg_id}, offset: {result.offset}")
del result
except Exception as e:
print(f"生产者发送消息失败:{repr(e)}")
finally:
del message
gc.collect()
def producer():
ROCKETMQ_HOST = os.getenv("ROCKETMQ_HOST")
ROCKETMQ_PORT = os.getenv("ROCKETMQ_PORT")
ROCKETMQ_ACCESS_KEY = os.getenv("ROCKETMQ_ACCESS_KEY")
ROCKETMQ_ACCESS_SECRET = os.getenv("ROCKETMQ_ACCESS_SECRET")
producer = Producer('algo-producer')
producer.set_name_server_address(f"{ROCKETMQ_HOST}:{ROCKETMQ_PORT}")
producer.set_session_credentials(ROCKETMQ_ACCESS_KEY, ROCKETMQ_ACCESS_SECRET, "")
producer.start()
try:
while True:
body = {"a":'x'}
send_message(producer,json.dumps(body))
time.sleep(0.2)
except KeyboardInterrupt:
print("退出")
finally:
producer.shutdown()
if __name__ == '__main__':
producer()
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.