小编Iva*_*van的帖子

传递列表元素作为参考

我正在将列表的单个元素传递给函数。我想修改该元素,因此,列表本身

def ModList(element):
    element = 'TWO'

l = list();
l.append('one')
l.append('two')
l.append('three')
print l
ModList(l[1])
print l
Run Code Online (Sandbox Code Playgroud)

但是此方法不会修改列表。就像元素正在作为值传递一样。输出为:

['一二三']

['一二三']

我希望函数调用后列表的第二个元素为“ TWO”:['one','TWO','three']

这可能吗?

先感谢您

python python-2.7

5
推荐指数
3
解决办法
6097
查看次数

Kafka producer.send 从不发送消息

我使用 Kafka 2.12 和 kafka-python 模块作为 Kafka 客户端。我正在尝试测试一个简单的生产者:

class Producer(Process):
daemon = True
def run(self):
    producer = KafkaProducer(bootstrap_servers='kafka:9092')
    print("Sending messages...")
    producer.send('topic', json.dumps(message).encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

当这个过程被实例化时,消费者永远不会收到消息

如果我刷新生产者并更改 linger_ms 参数(使其同步),则消息将由消费者发送和读取:

class Producer(Process):
daemon = True
def run(self):
    producer = KafkaProducer(bootstrap_servers='kafka:9092', linger_ms=10)
    print("Sending messages...")
    producer.send('topic', json.dumps(message).encode('utf-8'))
    producer.flush()
Run Code Online (Sandbox Code Playgroud)

在之前的 Kafka 版本中,有参数 queue.buffering.max.ms 来指定生产者将等待多长时间才能将消息发送到队列中,但在最新版本(kafka-python 1.3.3)中不存在。我如何在较新的 Kafka 版本中指定它以保持我的通信异步?

谢谢!

python apache-kafka kafka-python

3
推荐指数
2
解决办法
5637
查看次数

标签 统计

python ×2

apache-kafka ×1

kafka-python ×1

python-2.7 ×1