Python 3.x 如何动态创建卡夫卡制作人

Python 3.x 如何动态创建卡夫卡制作人,python-3.x,apache-kafka,kafka-producer-api,pykafka,Python 3.x,Apache Kafka,Kafka Producer Api,Pykafka,首先,我用python和kafka做了一些小步骤,假设我有一个listA=[item1,item2,item3],listA的每一项都是一个主题的制作人。现在我想要的是动态地向listA添加/删除项目,并且每个项目都应该在它自己的线程上运行,因为它们应该是独立的 因此,基本上我正在尝试扩展应用程序 到目前为止,我试图硬编码每一个生产者项目,并运行在自己的终端 每一项 from pykafka import KafkaClient import json from datetime import

首先,我用python和kafka做了一些小步骤,假设我有一个listA=[item1,item2,item3],listA的每一项都是一个主题的
制作人。现在我想要的是动态地向listA添加/删除项目,并且每个项目都应该在它自己的线程上运行,因为它们应该是独立的

因此,基本上我正在尝试扩展应用程序

到目前为止,我试图硬编码每一个生产者项目,并运行在自己的终端

每一项

from pykafka import KafkaClient
import json
from datetime import datetime
import uuid
import time


input_file = open('./data/item1.json')
json_array = json.load(input_file)
coordinates = json_array['features'][0]['geometry']['coordinates']

# Generate uuid


def generate_uuid():
    return uuid.uuid4()


# Kafaka producer
client = KafkaClient(hosts="localhost:9092")

topic = client.topics['test_kafka2']
producer = topic.get_sync_producer()


# Generate all coordinates
def generate_coordinates(coordinates):
    # new_coordinates = []
    i = 0
    while i < len(coordinates):
        data = {}
        data['class'] = 201
        data['key'] = str(data['class']) + '_' + str(generate_uuid())
        data['time_stamp'] = str(datetime.utcnow())
        data['longitude'] = coordinates[i][0]
        data['latitude'] = coordinates[i][1]
        message = json.dumps(data)
        producer.produce(message.encode('ascii'))
        time.sleep(1)

        # If item reaches last coordinaates
        if i == len(coordinates)-1:
            coordinates = coordinates[::-1]
            i = 0
        else:
            i += 1
    # return new_coordinates


generate_coordinates(coordinates)
从pykafka导入KafkaClient
导入json
从日期时间导入日期时间
导入uuid
导入时间
input_file=open('./data/item1.json')
json_数组=json.load(输入_文件)
坐标=json_数组['features'][0]['geometry']['coordinates']
#生成uuid
def生成_uuid():
返回uuid.uuid4()
#卡法卡制作人
client=KafkaClient(hosts=“localhost:9092”)
topic=client.topics['test_kafka2']
producer=topic.get\u sync\u producer()
#生成所有坐标
def生成_坐标(坐标):
#新的_坐标=[]
i=0
而i
您尝试的结果是什么?你有什么错误吗?或者你得到了一些输出,但不是你想要的?你能分享一些细节吗?它工作得很好,我现在无法缩放@Lalit