#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# here put the import lib
import argparse
from os import close
import time
from confluent_kafka import Consumer
import uuid
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--topic", type=str)
parser.add_argument("--host", type=str, default="127.0.0.1:9092")
parser.add_argument("-f", "--file", type=str, required=True)
args = parser.parse_args()
consumer = Consumer({
'bootstrap.servers': args.host,
'group.id': "downloader-{}".format(uuid.uuid4),
'auto.offset.reset': 'earliest',
})
consumer.subscribe([args.topic])
timeout_try_max = 3
timeout_try_count = 0
wf = open(args.file, "w", encoding="utf-8")
try:
while True:
msg = consumer.poll(2)
if msg is None:
print(None)
if timeout_try_count > timeout_try_max:
break
timeout_try_count += 1
time.sleep(1)
continue
elif msg.error():
buf = "Consumer error: {}".format(msg.error())
print(buf)
continue
wf.write(msg.value().decode("utf-8") + "\n")
timeout_try_count = 0
except KeyboardInterrupt:
pass
finally:
wf.close()
kafka 数据拉取到本地文件脚本
最新推荐文章于 2024-03-09 23:16:05 发布
这是一个Python脚本,使用Confluent Kafka库创建消费者,从指定的Kafka主题中获取消息,并将这些消息写入到提供的文件中。如果在等待消息时超时,会尝试一定次数后退出。程序通过argparse模块接收命令行参数,包括主题名、Kafka主机地址和输出文件。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Python3.10
Conda
Python
Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

1914





