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: 10 days ago
JSON representation
A fast and reliable background task processing library for Python 3.
- Host: GitHub
- URL: https://github.com/bogdanp/dramatiq
- Owner: Bogdanp
- License: lgpl-3.0
- Created: 2017-05-30T11:55:29.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2025-05-02T02:48:56.000Z (21 days ago)
- Last Synced: 2025-05-06T20:23:47.403Z (17 days ago)
- Topics: distributed-lock, python, rabbit, redis, task, task-manager, task-runner, task-scheduler
- Language: Python
- Homepage: https://dramatiq.io
- Size: 2.49 MB
- Stars: 4,599
- Watchers: 58
- Forks: 330
- Open Issues: 71
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: COPYING
Awesome Lists containing this project
README
# dramatiq
[](https://github.com/Bogdanp/dramatiq/actions?query=workflow%3A%22CI%22)
[](https://badge.fury.io/py/dramatiq)
[](http://dramatiq.io)
[](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
## 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.comCheck 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