lightning-fast, high-performance event handle framework
Project description
Tiny-listener
Tiny-listener is a lightning-fast, high-performance event handle framework with Python 3.6+
Requirements
Python 3.6+
Installation
$ pip3 install tiny-listener
Usage
Why use tiny-listener:
- complement in a easy way
- high performance
- friendly API
How does tiny-listener work:
listen -> fire -> do
A typical usage:
listen some kind of message queue, and declare handler for the message received
example.py
from tiny_listener import Listener
class App(Listener):
async def listen(self, fire):
# Normally, event will received from a message queue, such as Redis or RabbitMQ
# We omitted these events and commit event directly
fire("/event/2")
fire("/event/1")
app = App()
@app.do("/event/1")
async def do_something():
print("* event 1 done!")
@app.do("/event/2", parents=["/event/1"])
async def do_something():
print("* event 2 done!")
Then run the application using tiny-listener command:
$ tiny-listener example:app
>> event 1 done!
>> event 2 done!
Tiny-listener handle the two event by fire
method declare order, if you exchange them:
from tiny_listener import Listener
class App(Listener):
async def listen(self, fire):
fire("/event/2")
fire("/event/1")
...
Run your code, the event order does not change.
Argument parents
of Method app.do
can limit event execute order,
it's means /event/2 always run after /event/1.
Through fire order is wrong, but the decorator app.do
always handle event in right order.
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
tiny-listener-0.0.7.tar.gz
(6.5 kB
view hashes)
Built Distribution
Close
Hashes for tiny_listener-0.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fcedde697c6169062aa4d2369a490021cd943643f6598142c7ee38ef86fb373 |
|
MD5 | 7d8d5e2bdc72063977e8f64287903023 |
|
BLAKE2b-256 | c92e50b46250418a5d4378e1bfe5a42a6767d64ad49d8160acaf629ad76b6836 |