mqflow
mqflow is a simple Python message queue framework, providing an easy-to-use and efficient method to handle tasks asynchronously.
Github: https://github.com/dockhardman/mqflow
Installation
pip install mqflow
Features
- Easy-to-use: mqflow provides a Pythonic API that is both simple and effective for managing message queues.
- Flexibility: It supports different types of message queues such as FIFO, priority, and circular queues.
- Thread-Safe: mqflow uses Python's built-in queue library to ensure that your application is thread-safe.
- Customizable: mqflow allows you to customize your producer and consumer functions, providing great flexibility to fit your needs.
Usage
Here is an example of a simple message queue pipeline in memory:
from mqflow.broker import QueueBroker
from mqflow.producer import Producer
from mqflow.consumer import Consumer
from mqflow.pipeline import SequentialMessageQueue
def work(item, queue: "QueueBroker", *args, **kwargs):
print(f"[{item}] -> [{queue}] -> [{''.join(args)}]")
task_num = 3
mq = SequentialMessageQueue(
producers=[Producer(target=lambda: "Task sent", max_count=task_num)],
consumers=[Consumer(target=work, args=("Task received",), max_count=task_num)],
broker=QueueBroker(),
)
mq.run()
# [Task sent] -> [QueueBroker(name=QueueBroker, maxsize=0)] -> [Task received]
# [Task sent] -> [QueueBroker(name=QueueBroker, maxsize=0)] -> [Task received]
# [Task sent] -> [QueueBroker(name=QueueBroker, maxsize=0)] -> [Task received]
This creates a SequentialMessageQueue with a single producer that generates "Task sent" messages, and a single consumer that prints these messages with some additional information. The max_count parameter specifies the number of tasks the producer/consumer will handle before stopping. The broker manages the communication between producers and consumers.
Metadata
Release files for mqflow 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mqflow-0.4.0.tar.gz | 7.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mqflow-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.5 kB
Release files / mqflow-0.4.0.tar.gz
| Download URL | mqflow-0.4.0.tar.gz |
|---|---|
| Size | 7.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a6d77ad0763fcebb80b1bd17d383fc518a6f8a6958b1920fdafb5320a769424f
|
|
BLAKE2b-256 checksum How to use checksums |
1ae9c080309ac4baac28f2a6b36ee51d717e123341c4bbd96b6034fad89c6ca8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.3.2 CPython/3.8.16 Darwin/22.4.0
|
Release files / mqflow-0.4.0-py3-none-any.whl
| Download URL | mqflow-0.4.0-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d1cef7dc053d1fb1be084a45b8bd2a1c1bcd3397128e16ded91ac6a5caf6200
|
|
BLAKE2b-256 checksum How to use checksums |
1a4b6b6945a2e2e4ce3bcde8a174e862ae9f91de19e4d98025d2e872012781ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.3.2 CPython/3.8.16 Darwin/22.4.0
|