Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bogdanp/dramatiq

A fast and reliable background task processing library for Python 3.
https://github.com/bogdanp/dramatiq

distributed-lock python rabbit redis task task-manager task-runner task-scheduler

Last synced: 15 days ago
JSON representation

A fast and reliable background task processing library for Python 3.

Awesome Lists containing this project

README

        

# dramatiq

[![Build Status](https://github.com/Bogdanp/dramatiq/workflows/CI/badge.svg)](https://github.com/Bogdanp/dramatiq/actions?query=workflow%3A%22CI%22)
[![PyPI version](https://badge.fury.io/py/dramatiq.svg)](https://badge.fury.io/py/dramatiq)
[![Documentation](https://img.shields.io/badge/doc-latest-brightgreen.svg)](http://dramatiq.io)
[![Discuss](https://img.shields.io/badge/discuss-online-orange.svg)](https://groups.io/g/dramatiq-users)

*A fast and reliable distributed task processing library for Python 3.*


**Changelog**: https://dramatiq.io/changelog.html

**Community**: https://groups.io/g/dramatiq-users

**Documentation**: https://dramatiq.io


Sponsors






Franz: Desktop Client for Apache Kafka

## Installation

If you want to use it with [RabbitMQ]

pip install 'dramatiq[rabbitmq, watch]'

or if you want to use it with [Redis]

pip install 'dramatiq[redis, watch]'

## Quickstart

Make sure you've got [RabbitMQ] running, then create a new file called
`example.py`:

``` python
import dramatiq
import requests
import sys

@dramatiq.actor
def count_words(url):
response = requests.get(url)
count = len(response.text.split(" "))
print(f"There are {count} words at {url!r}.")

if __name__ == "__main__":
count_words.send(sys.argv[1])
```

In one terminal, run your workers:

dramatiq example

In another, start enqueueing messages:

python example.py http://example.com
python example.py https://github.com
python example.py https://news.ycombinator.com

Check out the [user guide] to learn more!

## License

dramatiq is licensed under the LGPL. Please see [COPYING] and
[COPYING.LESSER] for licensing details.

[COPYING.LESSER]: https://github.com/Bogdanp/dramatiq/blob/master/COPYING.LESSER
[COPYING]: https://github.com/Bogdanp/dramatiq/blob/master/COPYING
[RabbitMQ]: https://www.rabbitmq.com/
[Redis]: https://redis.io
[user guide]: https://dramatiq.io/guide.html