Skip to main content

Simple python message queue framework is ready to serve.

Project description

mqflow

dockhardman

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

simple_pymq-0.4.0-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file simple_pymq-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: simple_pymq-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 10.3 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

Hashes for simple_pymq-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 471d78b7f526f0c4e287863b03ed73e8adb7b44d2b75528e7688f65366215d82
MD5 c870d9a48d2554a8a15973317ca1f582
BLAKE2b-256 5fed63e9d6dd7a20e8b19afc238df25764ffc987fe9d6fd3fa9cb7c74ac223e0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page