[![PyPI latest](https://img.shields.io/pypi/v/olist-loafer.svg?maxAge=2592000)](https://pypi.python.org/pypi/loafer)
[![Python versions](https://img.shields.io/pypi/pyversions/olist-loafer.svg?maxAge=2592000)](https://pypi.python.org/pypi/loafer)
[![License](https://img.shields.io/pypi/l/loafer.svg?maxAge=2592000)](https://pypi.python.org/pypi/olist-loafer)
[![CircleCI](https://circleci.com/gh/olist/olist-loafer/tree/main.svg?style=svg)](https://circleci.com/gh/olist/olist-loafer/tree/main)
[![Olist Sponsor](https://img.shields.io/badge/sponsor-olist-53b5f6.svg?style=flat-square)](http://opensource.olist.com/)
**olist-loafer** is an asynchronous message dispatcher for concurrent tasks processing, with the following features:
* Encourages decoupling from message providers and consumers
* Easy to extend and customize
* Easy error handling, including integration with sentry
* Easy to create one or multiple services
* Generic Handlers
* Amazon SQS integration
---
:information_source: Currently, only AWS SQS is supported
---
## How to use
A simple message forwader, from ``source-queue`` to ``destination-queue``:
```python
from loafer.ext.aws.handlers import SQSHandler
from loafer.ext.aws.routes import SQSRoute
from loafer.managers import LoaferManager
routes = [
SQSRoute('source-queue', handler=SQSHandler('destination-queue')),
]
if __name__ == '__main__':
manager = LoaferManager(routes)
manager.run()
```
## How to contribute
Fork this repository, make changes and send us a pull request. We will review your changes and apply them. Before sending us your pull request please check if you wrote and ran tests:
```bash
make test
```
Raw data
{
"_id": null,
"home_page": "https://github.com/olist/olist-loafer/",
"name": "olist-loafer",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<3.12",
"maintainer_email": "",
"keywords": "asyncio,message,dispatcher,tasks,microservices",
"author": "Olist",
"author_email": "developers@olist.com",
"download_url": "https://files.pythonhosted.org/packages/b4/06/3202d64766e132608f7be9fcb8d8e25078a2a585169e79f3e9acb5e09096/olist_loafer-4.0.0.tar.gz",
"platform": null,
"description": "[![PyPI latest](https://img.shields.io/pypi/v/olist-loafer.svg?maxAge=2592000)](https://pypi.python.org/pypi/loafer)\n[![Python versions](https://img.shields.io/pypi/pyversions/olist-loafer.svg?maxAge=2592000)](https://pypi.python.org/pypi/loafer)\n[![License](https://img.shields.io/pypi/l/loafer.svg?maxAge=2592000)](https://pypi.python.org/pypi/olist-loafer)\n[![CircleCI](https://circleci.com/gh/olist/olist-loafer/tree/main.svg?style=svg)](https://circleci.com/gh/olist/olist-loafer/tree/main)\n[![Olist Sponsor](https://img.shields.io/badge/sponsor-olist-53b5f6.svg?style=flat-square)](http://opensource.olist.com/)\n\n\n**olist-loafer** is an asynchronous message dispatcher for concurrent tasks processing, with the following features:\n\n* Encourages decoupling from message providers and consumers\n* Easy to extend and customize\n* Easy error handling, including integration with sentry\n* Easy to create one or multiple services\n* Generic Handlers\n* Amazon SQS integration\n\n---\n:information_source: Currently, only AWS SQS is supported\n\n---\n\n## How to use\n\nA simple message forwader, from ``source-queue`` to ``destination-queue``:\n\n```python\nfrom loafer.ext.aws.handlers import SQSHandler\nfrom loafer.ext.aws.routes import SQSRoute\nfrom loafer.managers import LoaferManager\n\nroutes = [\n SQSRoute('source-queue', handler=SQSHandler('destination-queue')),\n]\n\nif __name__ == '__main__':\n manager = LoaferManager(routes)\n manager.run()\n```\n\n## How to contribute\n\nFork this repository, make changes and send us a pull request. We will review your changes and apply them. Before sending us your pull request please check if you wrote and ran tests:\n\n```bash\nmake test\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Asynchronous message dispatcher for concurrent tasks processing",
"version": "4.0.0",
"project_urls": {
"Download": "https://github.com/olist/olist-loafer/releases",
"Homepage": "https://github.com/olist/olist-loafer/",
"Repository": "https://github.com/olist/olist-loafer/"
},
"split_keywords": [
"asyncio",
"message",
"dispatcher",
"tasks",
"microservices"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "12dc3368acc2b2eb44b8c2dd16b7805afab326e1479010f7fbb2218fe347c6f8",
"md5": "259a37a9e676893b321fcba490f1ff27",
"sha256": "281289bdcce9158b6a055a216d35ad686bf2d57c8611f60dae3ede3e108b97e3"
},
"downloads": -1,
"filename": "olist_loafer-4.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "259a37a9e676893b321fcba490f1ff27",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<3.12",
"size": 13166,
"upload_time": "2023-07-10T20:18:40",
"upload_time_iso_8601": "2023-07-10T20:18:40.131266Z",
"url": "https://files.pythonhosted.org/packages/12/dc/3368acc2b2eb44b8c2dd16b7805afab326e1479010f7fbb2218fe347c6f8/olist_loafer-4.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b4063202d64766e132608f7be9fcb8d8e25078a2a585169e79f3e9acb5e09096",
"md5": "c9b5b37680a445b0f7895d85fcacf051",
"sha256": "7c183d575427d50b8a0c74f8d2a1993bed846d3903d5aa0d9e8fadcc3bd9a07c"
},
"downloads": -1,
"filename": "olist_loafer-4.0.0.tar.gz",
"has_sig": false,
"md5_digest": "c9b5b37680a445b0f7895d85fcacf051",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<3.12",
"size": 9548,
"upload_time": "2023-07-10T20:18:42",
"upload_time_iso_8601": "2023-07-10T20:18:42.109374Z",
"url": "https://files.pythonhosted.org/packages/b4/06/3202d64766e132608f7be9fcb8d8e25078a2a585169e79f3e9acb5e09096/olist_loafer-4.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-10 20:18:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "olist",
"github_project": "olist-loafer",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "olist-loafer"
}