remoulade


Nameremoulade JSON
Version 3.2.2 PyPI version JSON
download
home_pageNone
SummaryBackground Processing for Python 3.
upload_time2024-07-10 11:18:11
maintainerNone
docs_urlNone
authorWiremind
requires_python>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <img src="https://remoulade.readthedocs.io/en/latest/_static/logo.png" align="right" width="131" />

# remoulade

[![CircleCI](https://circleci.com/gh/wiremind/remoulade.svg?style=svg)](https://circleci.com/gh/wiremind/remoulade)
[![PyPI version](https://badge.fury.io/py/remoulade.svg)](https://badge.fury.io/py/remoulade)
[![Documentation](https://img.shields.io/badge/doc-latest-brightgreen.svg)](http://remoulade.readthedocs.io)

*A fast and reliable distributed task processing library for Python 3.* Fork of dramatiq.io

<hr/>

**Changelog**: https://remoulade.readthedocs.io/en/latest/changelog.html <br/>
**Documentation**: https://remoulade.readthedocs.io

<hr/>


## Installation

If you want to use it with [RabbitMQ]
```console
    $ pipenv install 'remoulade[rabbitmq]'
```

or if you want to use it with [Redis]

```console
   $ pipenv install 'remoulade[redis]'
```

## Quickstart

1. Make sure you've got [RabbitMQ] running, then create a new file called
`example.py`:

``` python
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])
```

2. In one terminal, run your workers:
```console
   $ remoulade example
```

3. In another, start enqueueing messages:
```console
   $ 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!.

## Dashboard

Check out [SuperBowl](https://github.com/wiremind/super-bowl) 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](https://kubernetes.io/) 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](https://github.com/wiremind/remoulade/blob/master/remoulade/middleware/prometheus.py).

## Tracing/OpenTelemtry

Take a look at [opentelemetry-instrumentation-remoulade](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-remoulade) if you want to enable tracing for Remoulade operations (enqueue, message processing, retries etc.). See [here](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/instrumentation/opentelemetry-instrumentation-remoulade/src/opentelemetry/instrumentation/remoulade/__init__.py) for an example.
The library follows [OpenTelemetry](https://opentelemetry.io/) standards.

## License

remoulade is licensed under the LGPL.  Please see [COPYING] and
[COPYING.LESSER] for licensing details.

[COPYING.LESSER]: https://github.com/wiremind/remoulade/blob/master/COPYING.LESSER
[COPYING]: https://github.com/wiremind/remoulade/blob/master/COPYING
[RabbitMQ]: https://www.rabbitmq.com/
[Redis]: https://redis.io
[user guide]: https://remoulade.readthedocs.io/en/latest/guide.html

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "remoulade",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Wiremind",
    "author_email": "dev@wiremind.io",
    "download_url": "https://files.pythonhosted.org/packages/10/ea/7815d4fbe5c6345dcd26358e21c70f910ba6bd7204ccd50c55136b4d01e2/remoulade-3.2.2.tar.gz",
    "platform": null,
    "description": "<img src=\"https://remoulade.readthedocs.io/en/latest/_static/logo.png\" align=\"right\" width=\"131\" />\n\n# remoulade\n\n[![CircleCI](https://circleci.com/gh/wiremind/remoulade.svg?style=svg)](https://circleci.com/gh/wiremind/remoulade)\n[![PyPI version](https://badge.fury.io/py/remoulade.svg)](https://badge.fury.io/py/remoulade)\n[![Documentation](https://img.shields.io/badge/doc-latest-brightgreen.svg)](http://remoulade.readthedocs.io)\n\n*A fast and reliable distributed task processing library for Python 3.* Fork of dramatiq.io\n\n<hr/>\n\n**Changelog**: https://remoulade.readthedocs.io/en/latest/changelog.html <br/>\n**Documentation**: https://remoulade.readthedocs.io\n\n<hr/>\n\n\n## Installation\n\nIf you want to use it with [RabbitMQ]\n```console\n    $ pipenv install 'remoulade[rabbitmq]'\n```\n\nor if you want to use it with [Redis]\n\n```console\n   $ pipenv install 'remoulade[redis]'\n```\n\n## Quickstart\n\n1. Make sure you've got [RabbitMQ] running, then create a new file called\n`example.py`:\n\n``` python\nfrom remoulade.brokers.rabbitmq import RabbitmqBroker\nimport remoulade\nimport requests\nimport sys\n\nbroker = RabbitmqBroker()\nremoulade.set_broker(broker)\n\n\n@remoulade.actor\ndef count_words(url):\n    response = requests.get(url)\n    count = len(response.text.split(\" \"))\n    print(f\"There are {count} words at {url!r}.\")\n\n\nbroker.declare_actor(count_words)\n\nif __name__ == \"__main__\":\n    count_words.send(sys.argv[1])\n```\n\n2. In one terminal, run your workers:\n```console\n   $ remoulade example\n```\n\n3. In another, start enqueueing messages:\n```console\n   $ python3 example.py http://example.com\n   $ python3 example.py https://github.com\n   $ python3 example.py https://news.ycombinator.com\n```\n\nVisit the [user guide] to see more features!.\n\n## Dashboard\n\nCheck out [SuperBowl](https://github.com/wiremind/super-bowl) a dashboard for real-time monitoring and administrating all your Remoulade tasks.\n***See the current progress, enqueue, requeue, cancel and more ...***\nSuper easy to use !.\n\n## Kubernetes\n\nRemoulade is tailored to run transparently in containers on [Kubernetes](https://kubernetes.io/) and to make the most of their features. This does not mean it cannot run outside of Kubernetes ;)\n\n## Monitoring/Prometheus\n\nRemoulade provides a `Prometheus` Middleware that exposes various metrics (processed messages, retries, fails etc.), [Check it out](https://github.com/wiremind/remoulade/blob/master/remoulade/middleware/prometheus.py).\n\n## Tracing/OpenTelemtry\n\nTake a look at [opentelemetry-instrumentation-remoulade](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-remoulade) if you want to enable tracing for Remoulade operations (enqueue, message processing, retries etc.). See [here](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/instrumentation/opentelemetry-instrumentation-remoulade/src/opentelemetry/instrumentation/remoulade/__init__.py) for an example.\nThe library follows [OpenTelemetry](https://opentelemetry.io/) standards.\n\n## License\n\nremoulade is licensed under the LGPL.  Please see [COPYING] and\n[COPYING.LESSER] for licensing details.\n\n[COPYING.LESSER]: https://github.com/wiremind/remoulade/blob/master/COPYING.LESSER\n[COPYING]: https://github.com/wiremind/remoulade/blob/master/COPYING\n[RabbitMQ]: https://www.rabbitmq.com/\n[Redis]: https://redis.io\n[user guide]: https://remoulade.readthedocs.io/en/latest/guide.html\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Background Processing for Python 3.",
    "version": "3.2.2",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e8fea2d52e90cac612409cf467298a1f05cb69d1422ee36a8d9fe721b1812560",
                "md5": "d241e7474e8032440240307c28b48aa7",
                "sha256": "934d91c32bb507fce1fc301ae6514f2e0537097d29bba1bdb23298b1560a200f"
            },
            "downloads": -1,
            "filename": "remoulade-3.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d241e7474e8032440240307c28b48aa7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 139738,
            "upload_time": "2024-07-10T11:18:08",
            "upload_time_iso_8601": "2024-07-10T11:18:08.459182Z",
            "url": "https://files.pythonhosted.org/packages/e8/fe/a2d52e90cac612409cf467298a1f05cb69d1422ee36a8d9fe721b1812560/remoulade-3.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "10ea7815d4fbe5c6345dcd26358e21c70f910ba6bd7204ccd50c55136b4d01e2",
                "md5": "4ff4b6dd8260bf0ffb1c000b089cd3bc",
                "sha256": "70f63e2b1e99e9bcd7aa0c1f3de92d72caf7f19912e8c59e8df960436b6aabea"
            },
            "downloads": -1,
            "filename": "remoulade-3.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "4ff4b6dd8260bf0ffb1c000b089cd3bc",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 113769,
            "upload_time": "2024-07-10T11:18:11",
            "upload_time_iso_8601": "2024-07-10T11:18:11.739015Z",
            "url": "https://files.pythonhosted.org/packages/10/ea/7815d4fbe5c6345dcd26358e21c70f910ba6bd7204ccd50c55136b4d01e2/remoulade-3.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-10 11:18:11",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "remoulade"
}
        
Elapsed time: 1.37377s