Skip to main content

A small example package

Project description

Yet another kafka consumer which is born for the purpose of keeping Shop's discovery and experience systems updated with the data events/updates in the merchant system.

Installation

To use the consumer you can add it as a dependency to your project.

PIP

python -m pip install --user cb-kafka-consumer

Pipfile

[packages]
cb-kafka-consumer = "~=0.0.8"

An example handler

Make sure to use the right values to initiate CBKafkaConsumer

from cb_kafka_consumer.src.consumer import CBKafkaConsumer, Message


class MyConsumer:
    def __init__(self):
        self.__consumer = CBKafkaConsumer('127.0.0.1:9092', 'my-group-id', 'my-topic', self.handler, batch_size=20)
        self.__consumer.start()

    def handler(self, msg: Message):
        print(msg.get_offset(), msg.msg, msg)
        self.__consumer.commit(msg)

Commit policy

There are two different approaches dealing with commit policy.

  • auto_commit=True

You can use auto_commit=True when initiating the consumer to instruct it to automatically commit received messages right after they have been handed over to the handler callback. When using auto_commit, the handler callback is not expected to explicitly call the commit method of consumer object.

  • auto_commit=False (default behavior)

If auto_commit is not specified or set to False the consumer will only commit messages right before the item in the sequence where it's not committed (handling may have probably failed). To further demonstrate this let's assume we the consumer has received messages with the following offsets:

1, 2, 3, 4, 5

The consumer now hands over the received messages to the handler callback. Now let's say the callback processes message #1 and #2 successfully and commits these two messages but fails to process #3. Next, messages #4 and #5 are successfully processed and committed. The consumer will only commit message #1 and #2 and will not commit succeeded messages until commit is called with message #3 and will only then move onward.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cb_kafka_consumer-0.0.9.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

cb_kafka_consumer-0.0.9-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file cb_kafka_consumer-0.0.9.tar.gz.

File metadata

  • Download URL: cb_kafka_consumer-0.0.9.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for cb_kafka_consumer-0.0.9.tar.gz
Algorithm Hash digest
SHA256 16691867ef769bc3d2b265b34d09a7678eb88d88052cddb9ee33cf3217a6eb9e
MD5 2a4ddd7d36a5226389c2f0585b863046
BLAKE2b-256 5bca5d21821fe1b2daf18cb537b303e98d7a9c04f83535bb63e528743233e8d5

See more details on using hashes here.

File details

Details for the file cb_kafka_consumer-0.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for cb_kafka_consumer-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 d49645d9143a3c68b83482e6014b844f88f2c88d55d9e337b2248253b061728d
MD5 bc7b2026682bd74ed7e984d47eefc283
BLAKE2b-256 f079cc8029b31b07b4445729d80c07d449381c0149ff6ef087d64b44002d98c9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page