Simple python message queue framework is ready to serve.
Project description
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.
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
File details
Details for the file mqflow-0.4.0.tar.gz
.
File metadata
- Download URL: mqflow-0.4.0.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.8.16 Darwin/22.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6d77ad0763fcebb80b1bd17d383fc518a6f8a6958b1920fdafb5320a769424f |
|
MD5 | 448c9f9a6f85b6dcf53478bac8861cda |
|
BLAKE2b-256 | 1ae9c080309ac4baac28f2a6b36ee51d717e123341c4bbd96b6034fad89c6ca8 |
File details
Details for the file mqflow-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: mqflow-0.4.0-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.8.16 Darwin/22.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d1cef7dc053d1fb1be084a45b8bd2a1c1bcd3397128e16ded91ac6a5caf6200 |
|
MD5 | 42fb28920ce955f121505c22276ceb1d |
|
BLAKE2b-256 | 1a4b6b6945a2e2e4ce3bcde8a174e862ae9f91de19e4d98025d2e872012781ec |