Skip to main content

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

Project description

<img src="https://dramatiq.io/_static/logo.png" align="right" width="131" />

# dramatiq

[![Build Status](https://travis-ci.org/Bogdanp/dramatiq.svg?branch=master)](https://travis-ci.org/Bogdanp/dramatiq)
[![Test Coverage](https://api.codeclimate.com/v1/badges/2e03a54d3d3ee0bb93c4/test_coverage)](https://codeclimate.com/github/Bogdanp/dramatiq/test_coverage)
[![Maintainability](https://api.codeclimate.com/v1/badges/2e03a54d3d3ee0bb93c4/maintainability)](https://codeclimate.com/github/Bogdanp/dramatiq/maintainability)
[![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)
[![Discourse](https://img.shields.io/badge/discuss-online-orange.svg)](https://discuss.dramatiq.io)

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

<hr/>

**Changelog**: https://dramatiq.io/changelog.html <br/>
**Community**: https://discuss.dramatiq.io <br/>
**Documentation**: https://dramatiq.io

<hr/>


## Installation

If you want to use it with [RabbitMQ]

pipenv install 'dramatiq[rabbitmq, watch]'

or if you want to use it with [Redis]

pipenv 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


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

dramatiq-1.2.0.tar.gz (60.4 kB view details)

Uploaded Source

Built Distribution

dramatiq-1.2.0-py3-none-any.whl (90.0 kB view details)

Uploaded Python 3

File details

Details for the file dramatiq-1.2.0.tar.gz.

File metadata

  • Download URL: dramatiq-1.2.0.tar.gz
  • Upload date:
  • Size: 60.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dramatiq-1.2.0.tar.gz
Algorithm Hash digest
SHA256 cc8920a238f5a006eba79c77ce591df1d418748bdedfce0bf4c4b42375f57e00
MD5 08036259262b5d895eb57a828468a617
BLAKE2b-256 bee48a036e74577316a18236be2b1ba91c4f28808bee833bd346ccd6f46bb31f

See more details on using hashes here.

Provenance

File details

Details for the file dramatiq-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for dramatiq-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a0077ffba81895c23fcaab61ad50bc75cf882a62de7d4fc5bd59d689c0b96cb1
MD5 ae0147d1299b8ffbd3d2fa28dec835cb
BLAKE2b-256 4eda05376cf26aaa4b30bf2b81582cd62a7f15234443b6303b384d35cfe12a33

See more details on using hashes here.

Provenance

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