Decorator interface to pykafka
Project description
This module is based on pykafka project (https://github.com/Parsely/pykafka.git) and define a class KafkaDecorator and its 4 decorators
@KafkaDecorator.host The first defines the connection parameters its parameters are the same of pykafka.KafkaClient
@KafkaDecorator.balanced_consumer its parameters are the same of pykafka.topic.get_balanced_consumer function
@KafkaDecorator.simple_consumer its parameters are the same of pykafka.topic.get_simple_consumer function
its parameters are the same of pykafka.topic.get_producer function @KafkaDecorator.producer
How to use
from kafka_client_decorators import KafkaDecorator from kafka_client_decorators.kafka.logging_helper import setDebugLevel import logging
kc = KafkaDecorator( )
#@kc.host(zookeeper_hosts='localhost:2181' ) @kc.host(hosts='localhost:9092' ) class A: def init(self, testA, cls): self.a = testA self.cls = cls pass
@kc.balanced_consumer('test1', consumer_group='testgroup3', auto_commit_enable=True, managed=True, consumer_timeout_ms=1000)
def get(self, msg):
print ( f'{self.a} Receive offset {msg.offset} key {msg.partition_key} message: { msg.value }' )
self.send( msg.value )
@kc.simple_consumer('test2', consumer_group='testgroup4', auto_commit_enable=True, consumer_timeout_ms=1000)
def get2(self, msg):
print ( f'{self.a} Receive offset {msg.offset}, message: { msg.value }' )
self.cls.stop(self)
@kc.producer('test2')
def send(self, msg):
pass
@kc.producer('test1')
def sendKey(self, msg, key ):
pass
class B:
def __init__(self):
pass
def stop(self, conn):
conn.stop()
a = A('Example', B()) a.start()
a.sendKey( 'Hello'.encode('utf-8'), partition_key='world'.encode('utf-8') )
a.wait()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for kafka_client_decorators-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9cd7e4ed58889059a425da53b719884acd32f2b26daa063832643c925a5f009 |
|
MD5 | 9288f77f42b7dabc3a5692dee62b5e69 |
|
BLAKE2b-256 | e1c43e0d19aac7e218f4df5adc580f589c830aff8c8e7105e5781ac06840737d |
Hashes for kafka_client_decorators-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf577014bed73a4233ac61d13f9108671ebac1a35aff44d0fb678a7e12eb24ca |
|
MD5 | 2229f56705757490503f169c45b232c2 |
|
BLAKE2b-256 | b50285b24667eeab28557747e5c3266b53751940ddf1d69310cf056fd97158df |