Skip to main content

Kafka Job Queue for Python

Project description

Build Status Documentation Status Package Version Python Versions Test Coverage Issues Open MIT License

KQ (Kafka Queue) is a lightweight Python library which provides a simple API to process jobs asynchronously in the background. It uses Apache Kafka and is designed primarily for ease of use.

Requirements

  • Apache Kafka 0.9+

  • Python 2.7+ 3.4+ or 3.5+

Getting Started

First, ensure that your Kafka instance is up and running:

# This command is just an example
~$ ./kafka-server-start.sh -daemon server.properties

Let’s say you want to run the following function asynchronously:

import time

def my_func(foo, bar, baz=None):
    """This is a blocking function."""
    time.sleep(10)
    return foo, bar, baz

Start a KQ worker:

~$ kq worker --verbose
[INFO] Starting Worker(topic=default) ...

Enqueue the function call as a job:

# Import the blocking function
from my_module import my_func

# Initialize a queue
from kq import Queue
q = Queue()

# Enqueue the function call
q.enqueue(my_func, 1, 2, baz=3)

Sit back and watch the worker process it in the background:

~$ kq worker --verbose
[INFO] Starting Worker(topic=default) ...
[INFO] Processing Record(topic=default, partition=5, offset=3) ...
[INFO] Running Job 1b92xle0: my_module.my_func(1, 2, baz=3) ...
[INFO] Job 1b92xle0 returned: (1, 2, 3)

Check out the full documentation for more details!

Installation

To install a stable version from PyPI (recommended):

~$ pip install kq

To install the latest version directly from GitHub:

~$ pip install -e git+git@github.com:joowani/kq.git@master#egg=kq

You may need to use sudo depending on your environment setup.

Credits

This project was inspired by RQ and built on top of kafka-python.

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

kq-1.0.1.tar.gz (12.5 kB view hashes)

Uploaded Source

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