A simple application layer event-bus lib, support redis/mqtt/rabbitmq/kafka.
Project description
pbus
A simple application layer event-bus lib, support redis/mqtt/rabbitmq.
Install
pip install pbus
Usage
- Use with Redis/MQTT/RabbitMQ Bus class.
Subscriber
import pbus
bus = pbus.RedisBus(host='127.0.0.1') # need "pip install redis"
# or
bus = pbus.MQTTBus(host='127.0.0.1') # need "pip install paho-mqtt"
# or
bus = pbus.RabbitMQBus(host='127.0.0.1') # need "pip install pika"
# or
bus = pbus.MemoryBus(exchange='ex1') # with memory, can't use in multi-processing
# or
bus = pbus.KafkaBus(host='127.0.0.1') # with kafa, need "pip install kafka"
ps = bus.subscriber('test')
for data in ps.listen():
print(data)
Publish
import pbus
bus = pbus.RedisBus(host='127.0.0.1')
# or
bus = pbus.MQTTBus(host='127.0.0.1')
# or
bus = pbus.RabbitMQBus(host='127.0.0.1')
bus.publish('test', 'Hello')
bus = pbus.MemoryBus(exchange='ex1')
bus.publish('test', 'Hello')
- Use with URI(recommend)
import pbus
bus = pbus.connect("redis://:password@127.0.0.1:6379/2") # with db 2
# or
bus = pbus.connect("mqtt://username:password@127.0.0.1:1883") #
# or
bus = pbus.connect("amqp://username:password@127.0.0.1:5672/myexchange") # with "myexchange" exchange
# or
bus = pbus.connect("memory:/ex1") # with "test" exchange
# ...... other code
- Test event-bus speed.
- a. Run consumer client
python -m pbus -u redis://127.0.0.1
- b. Run producer client
python -m pbus -u redis://127.0.0.1 -p
You will see:
connecting to bus redis://127.0.0.1 ...
connecte success!
subscribing to pbus ...
subscribe success!
waiting data from pbus
1 : count 27748 time: 5000ms speed: 5549/s total 27748
2 : count 83135 time: 5000ms speed: 16627/s total 110883
3 : count 86416 time: 5000ms speed: 17283/s total 197299
4 : count 72546 time: 5000ms speed: 14509/s total 269845
Ctrl+C to stop test.
- c. Run both consumer and producer
python -m pbus -u redis://127.0.0.1 -l
You will see:
Consumer: connecting to bus redis://127.0.0.1 ...
Consumer: connecte success!
Consumer: subscribing to pbus ...
Consumer: subscribe success!
Consumer: waiting data from pbus
Producer: connecting to bus redis://127.0.0.1 ...
Producer: connecte success!
Producer: will publish "Hello World!" to pbus
--Press Ctrl+C to stop it!--
Consumer: 1 : count 29119 time: 5000ms speed: 5823/s total 29119
Producer: 1 : count 29642 time: 5000ms speed: 5928/s total 29642
Click to view more information!
CHANGES
1.0.0
- First version
1.1.0
- Support MQTT and RabbitMQ
- Support connect with URI
1.2.0
- Support Memory
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
pbus-1.5.0.tar.gz
(22.2 kB
view details)
File details
Details for the file pbus-1.5.0.tar.gz
.
File metadata
- Download URL: pbus-1.5.0.tar.gz
- Upload date:
- Size: 22.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70aef78cb301a6abb501178da43dea76a55759bfcb8ba790c9381e165a0c00df |
|
MD5 | bcb3f7b1b02d8efd079a4908d503130d |
|
BLAKE2b-256 | da19845560b0b6356499e617d2ede94b1d87582e191301347ec4c615d2afe72b |