Skip to main content

Base Kafka Consumer for Busie Projects

Project description

Busie Consumer

A base consumer package for Busie projects. Abstracts polling and configuration setup away from the end user and exposes basic api for starting the poll process.

Installation

pip install busie-consumer

Usage

from busie_consumer import BaseConsumer

CONFIG = {
    'bootstrap.servers': 'localhost:9092',
    # Other Config as necessary
}

consumer = BaseConsumer(topics=['some-topic', 'another'], config=CONFIG)

for message in consumer.start():
    handle_message(message)

# It may also be helpful to extend this base class and provide helper methods

class HigherLevelConsumer(Consumer):
    def handle_message(self, message):
        # process the message
        reply_topic, reply = determine_reply(message)
        self.send_reply(topic=reply_topic, message=reply, key=message.key())
consumer = HigherLevelConsumer(topics=['topic'], config=CONFIG)

for msg in consumer.start():
    consumer.handle_message(msg)

API

BaseConsumer

Public Methods

  • BaseConsumer(topics=None, config=None): Constructor
    • required param topics: An iterable of strings containing topic names
    • required param config: A dict containing Kafka config Note config must have bootstrap.servers and group.id entries
  • start(): Generator methods. initiates polling. returns a generator
  • close(): Closes the consumer
  • send_reply(topic=None, message=None, key=None): Invokes a producer and uses it to send a reply to the desired topic. Especially helpful for the Saga Orchestrator Pattern Note The producer assumes the same config as the consumer class
    • required param topic: A string representing the desired topic name
    • required param message: The data to send to the desired topic.
    • required param key: The desired key for the message

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

busie-consumer-1.0.0.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

busie_consumer-1.0.0-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file busie-consumer-1.0.0.tar.gz.

File metadata

  • Download URL: busie-consumer-1.0.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for busie-consumer-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e3b4741c7cb9ecff3a8558c162cf3d4214303bdce5feb3d3f9e6905f2e336c5d
MD5 e69ac253fdc40a2049c345253cebf7de
BLAKE2b-256 5d8f924422a646be7a545f6eeac0e01231ee0333291a40b26bcac5b61da3c0e8

See more details on using hashes here.

File details

Details for the file busie_consumer-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: busie_consumer-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for busie_consumer-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0e5e2bda1e7563cc6badbc5e1a23acf5010a209cc3fc49fc8dd94012f1040512
MD5 92b3f54b1d3601b2a2bcdb3d72679033
BLAKE2b-256 608f03c8c0952721a1f831e96910f56e5272ffd3d1ec8d9166c40baf70bb2cb6

See more details on using hashes here.

Supported by

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