从文件运行代码然后从shell运行代码时的不同行为

时间:2018-01-26 15:24:00

标签: python apache-kafka

我正在学习如何在python下使用kafka。

我正在运行kafka服务器,正在监听mytopic的消费者。

现在我使用confluent-kafka编写了这段代码:

from confluent_kafka import Producer
p = Producer({'bootstrap.servers': 'localhost:9092'})
p.produce('mytopic', key='hello', value='world')

当我运行python并粘贴该代码时(消费者正在收集)

但是如果将其保存到example.py并运行python example.py则不会。

任何人都明白这一点?

1 个答案:

答案 0 :(得分:3)

从文件运行代码时,它会在最后一行之后立即终止。

要等待制作人在结束前发送所有消息,您需要致电flush()

p.flush()

请参阅API文档:https://docs.confluent.io/current/clients/confluent-kafka-python/index.html#confluent_kafka.Producer.flush