【发布时间】:2015-12-03 08:01:40
【问题描述】:
我写了一个程序来消费 kafka 事件。它有一个守护进程,我想在 10 秒后终止它。
def kafkaConsumer():
consumer = KafkaConsumer(sys.argv[1],group_id='test-consumer-group',bootstrap_servers=sys.argv[2].split(','))
schema_path=sys.argv[3]
schema = avro.schema.parse(open(schema_path).read())
for msg in consumer:
value = bytearray(msg.value)
bytes_reader = io.BytesIO(value[9:])
decoder = avro.io.BinaryDecoder(bytes_reader)
reader = avro.io.DatumReader(schema)
try:
event = reader.read(decoder)
except:
pass
eventInJsonFormat=json.dumps(event)
print(eventInJsonFormat)
if __name__ == '__main__':
run_thread = Thread(target=kafkaConsumer())
run_thread.daemon = True
run_thread.start()
time.sleep(10)
请忽略缩进。
但是这个程序并没有在 10 秒后终止。想知道我在这里缺少什么吗?
【问题讨论】:
-
你试过终止线程,而不仅仅是休眠?stackoverflow.com/questions/16262132/…
标签: python python-multithreading kafka-python