A fast and reliable background task processing library for Python 3.
# dramatiq
*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
## 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