Background Processing for Python 3.
Project description
dramatiq
A fast and reliable distributed task processing library for Python 3.
Changelog: https://dramatiq.io/changelog.html
Community: https://reddit.com/r/dramatiq
Documentation: https://dramatiq.io
Support Dramatiq via Patreon
Support Dramatiq via Tidelift
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]'
Supporting the Project
If you use and love Dramatiq and want to make sure it gets the love and attention it deserves then you should consider supporting the project. There are three ways in which you can do this right now:
- If you're a company that uses Dramatiq in production then you can get a Tidelift subscription. Doing so will give you an easy route to supporting both Dramatiq and other open source projects that you depend on.
- If you're an individual or a company that doesn't want to go through Tidelift then you can support the project via Patreon.
- If you're a company and neither option works for you and you would like to receive an invoice from me directly then email me at bogdan@defn.io and let's talk.
Quickstart
Make sure you've got RabbitMQ running, then create a new file called
example.py
:
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.