我正在使用 pykafka,并且有一个异步生产并使用 delivery_reports 的生产者。我知道必须使用“get_delivery_report”方法阅读交付报告,并且我知道必须在与生成的消息相同的线程中调用它。但是,get_delievery_report 是否必须在每次调用后调用才能生成,还是可以调用一次?如果发生不止一个,get_delivery_report 将返回所有失败的发送。例如,假设我异步发送 100 条消息:
for x in xrange(100):
with topic.get_producer(delivery_reports=Try, sync=False) as producer:
producer.produce("Test Message")
msg, exc = producer.get_delivery_report()
还是必须是:
for x in xrange(100):
with topic.get_producer(delivery_reports=Try, sync=False) as producer:
producer.produce("Test Message")
msg, exc = producer.get_delivery_report()
第一个似乎比第二个运行得快得多。