Skip to main content

Background Processing for Python 3.

Project description

remoulade

CircleCI PyPI version Documentation

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]'

If you want to use it with PostgreSQL and PGMQ

    uv pip install 'remoulade[postgres]'

If you want Redis-backed extras like results or cancellation, add Redis to the broker extra you use:

   uv pip install 'remoulade[rabbitmq, redis]'
   uv pip install 'remoulade[postgres, redis]'

Quickstart

  1. 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])
  1. In one terminal, run your workers:
   remoulade example
  1. 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:

  1. Merge your pull request
  2. Push a tag (must start with a v) from the commit you want (usually, the master branch) a. You can create a new release on Github (recommended). This will create and push the tag for you. b. Update your local clone, checkout master, git tag and then git push --tags

This will trigger a CI/CD pipeline that publish the package

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

remoulade-7.0.0.0rc5.tar.gz (108.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

remoulade-7.0.0.0rc5-py3-none-any.whl (162.6 kB view details)

Uploaded Python 3

File details

Details for the file remoulade-7.0.0.0rc5.tar.gz.

File metadata

  • Download URL: remoulade-7.0.0.0rc5.tar.gz
  • Upload date:
  • Size: 108.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for remoulade-7.0.0.0rc5.tar.gz
Algorithm Hash digest
SHA256 97e116c700c5a8082b40c361b4843217c4f64997f8a6d9683d68a60402da231e
MD5 f3b233e0b7a7f20affa76a328c0e73e7
BLAKE2b-256 0838b4e5b7c9f18857c06f4d12b3964fac34f7d3179ff2f34ad49d23c7f10bf7

See more details on using hashes here.

Provenance

The following attestation bundles were made for remoulade-7.0.0.0rc5.tar.gz:

Publisher: pythonpublish.yml on wiremind/remoulade

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file remoulade-7.0.0.0rc5-py3-none-any.whl.

File metadata

  • Download URL: remoulade-7.0.0.0rc5-py3-none-any.whl
  • Upload date:
  • Size: 162.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for remoulade-7.0.0.0rc5-py3-none-any.whl
Algorithm Hash digest
SHA256 6a61c424c872f7d6c35363ae79bc1d6243a44bcef43b2cb8995b081cb13ade4e
MD5 9c186a16de01151e6afbef589d3afc40
BLAKE2b-256 15f4ed5c47d50ca945923f4c63ffb008bf19e13c9b22fe86b75e1a171d9a67ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for remoulade-7.0.0.0rc5-py3-none-any.whl:

Publisher: pythonpublish.yml on wiremind/remoulade

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page