10

kafka-python-1.0.2 を使用。

10 個のパーティションを持つトピックがある場合、さまざまなパーティションとメッセージをループしながら、特定のパーティションをコミットするにはどうすればよいですか。ドキュメントやその他の場所で、この例を見つけることができないようです

ドキュメントから、使用したい:

consumer.commit(offset=offsets)

具体的には、オフセットに必要なパーティションと OffsetAndMetadata ディクショナリを作成する方法 (dict、オプション) – {TopicPartition: OffsetAndMetadata}.

関数呼び出しが次のようになることを望んでいました。

consumer.commit(partition, offset)

しかし、そうではないようです。

前もって感謝します。

4

5 に答える 5

10

だから、私はそれを理解したように見えます.質問を書き留めると、それがどのように起こるか面白いです. これはうまくいくようです:

meta = consumer.partitions_for_topic(topic)
options = {}
options[partition] = OffsetAndMetadata(message.offset + 1, meta)
consumer.commit(options)

さらにテストが必要ですが、何か変更があれば更新します。

于 2016-04-12T17:43:02.353 に答える