简体   繁体   English

Python confluent_kafka:consume(0) 不能触发回调

[英]Python confluent_kafka: consume(0) cannot trigger callbacks

I am using confluent-kafka-python and librdkafka .我正在使用confluent-kafka-pythonlibrdkafka

But I think, confluent_kafka.Consumer.consume(0) cannot trigger stats_cb.但我认为, confluent_kafka.Consumer.consume(0)不能触发 stats_cb。

Consumer_consume(0) => rd_kafka_consume_batch_queue => rd_kafka_q_serve_rkmessages Consumer_consume(0) => rd_kafka_consume_batch_queue => rd_kafka_q_serve_rkmessages

In, rd_kafka_poll_cb is called in the while (cnt < rkmessages_size) loop .在, rd_kafka_poll_cbwhile (cnt < rkmessages_size) loop被调用。 If rkmessages_size is 0, it is not called.如果rkmessages_size为 0,则不会调用它。

In this case, rk_rep may become larger and larger.在这种情况下, rk_rep可能会越来越大。

How to trigger stats_cb in Consumer_consume(0) ?如何在Consumer_consume(0)触发 stats_cb ? Thanks谢谢

Callbacks are served from rd_kafka_q_serve_rkmessages() : https://github.com/edenhill/librdkafka/blob/b50e247b77864c595569f7f7e9ec8dde63258210/src/rdkafka_queue.c#L574回调由rd_kafka_q_serve_rkmessages()https : //github.com/edenhill/librdkafka/blob/b50e247b77864c595569f7f7e9ec8dde63258210/src/rdkafka_queue.c#L57

If you're not seeing your stats_cb being triggered, make sure that statistics.interval.ms is set to a non-zero value.如果您没有看到 stats_cb 被触发,请确保将statistics.interval.ms设置为非零值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM