Background Processing for Python 3.
Project description
remoulade
A fast and reliable distributed task processing library for Python 3. Fork of dramatiq.io
Changelog: https://remoulade.readthedocs.io/en/latest/changelog.html
Documentation: https://remoulade.readthedocs.io
Installation
If you want to use it with RabbitMQ
uv pip install 'remoulade[rabbitmq]'
or if you want to use it with Redis
uv pip install 'remoulade[redis]'
Quickstart
- Make sure you've got RabbitMQ running, then create a new file called
example.py:
from remoulade.brokers.rabbitmq import RabbitmqBroker
import remoulade
import requests
import sys
broker = RabbitmqBroker()
remoulade.set_broker(broker)
@remoulade.actor
def count_words(url):
response = requests.get(url)
count = len(response.text.split(" "))
print(f"There are {count} words at {url!r}.")
broker.declare_actor(count_words)
if __name__ == "__main__":
count_words.send(sys.argv[1])
- In one terminal, run your workers:
remoulade example
- In another, start enqueueing messages:
python3 example.py http://example.com
python3 example.py https://github.com
python3 example.py https://news.ycombinator.com
Visit the user guide to see more features!.
Releasing
If you want to contribute to the project. First make a Pull request and get approval from a Maintainer and then:
- Merge your pull request
- Push a tag (must start with a
v) from the commit you want (usually, themasterbranch) a. You can create a new release on Github (recommended). This will create and push the tag for you. b. Update your local clone, checkoutmaster,git tagand thengit push --tags
This will trigger a CI/CD pipeline that publish the package
Dashboard
Check out SuperBowl a dashboard for real-time monitoring and administrating all your Remoulade tasks. See the current progress, enqueue, requeue, cancel and more ... Super easy to use !.
Kubernetes
Remoulade is tailored to run transparently in containers on Kubernetes and to make the most of their features. This does not mean it cannot run outside of Kubernetes ;)
Monitoring/Prometheus
Remoulade provides a Prometheus Middleware that exposes various metrics (processed messages, retries, fails etc.), Check it out.
Tracing/OpenTelemtry
Take a look at opentelemetry-instrumentation-remoulade if you want to enable tracing for Remoulade operations (enqueue, message processing, retries etc.). See here for an example. The library follows OpenTelemetry standards.
License
remoulade 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.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file remoulade-5.0.0.tar.gz.
File metadata
- Download URL: remoulade-5.0.0.tar.gz
- Upload date:
- Size: 96.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdb9c8d9d5c87d672d7ddd880461ee7b0d08134251f9dc9a7ced2c600bec64a3
|
|
| MD5 |
31780ff8f31e459e11c0f9a45d5e9f5f
|
|
| BLAKE2b-256 |
bc9707b71be4e07fe23b776d058247a5e07ffd8ee1eb81f129f58f051af184d1
|
Provenance
The following attestation bundles were made for remoulade-5.0.0.tar.gz:
Publisher:
pythonpublish.yml on wiremind/remoulade
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
remoulade-5.0.0.tar.gz -
Subject digest:
bdb9c8d9d5c87d672d7ddd880461ee7b0d08134251f9dc9a7ced2c600bec64a3 - Sigstore transparency entry: 815928686
- Sigstore integration time:
-
Permalink:
wiremind/remoulade@19e3b2a41451de8149192201b845947397c3a7b8 -
Branch / Tag:
refs/tags/v5.0.0 - Owner: https://github.com/wiremind
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pythonpublish.yml@19e3b2a41451de8149192201b845947397c3a7b8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file remoulade-5.0.0-py3-none-any.whl.
File metadata
- Download URL: remoulade-5.0.0-py3-none-any.whl
- Upload date:
- Size: 148.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b23cb4715776f82a50b8f3f883bf36cde81218c130f2581a349fdb43ebd390d
|
|
| MD5 |
bf2460f2f928dbce0265f91dfdfd339f
|
|
| BLAKE2b-256 |
6f9c44fd09cdf5070eb13dec3de821bb8691a7412c2584abbffac9c4b959e504
|
Provenance
The following attestation bundles were made for remoulade-5.0.0-py3-none-any.whl:
Publisher:
pythonpublish.yml on wiremind/remoulade
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
remoulade-5.0.0-py3-none-any.whl -
Subject digest:
2b23cb4715776f82a50b8f3f883bf36cde81218c130f2581a349fdb43ebd390d - Sigstore transparency entry: 815928728
- Sigstore integration time:
-
Permalink:
wiremind/remoulade@19e3b2a41451de8149192201b845947397c3a7b8 -
Branch / Tag:
refs/tags/v5.0.0 - Owner: https://github.com/wiremind
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pythonpublish.yml@19e3b2a41451de8149192201b845947397c3a7b8 -
Trigger Event:
push
-
Statement type: