litestar-saq


Namelitestar-saq JSON
Version 0.2.0 PyPI version JSON
download
home_pageNone
SummaryLitestar integration for SAQ
upload_time2024-09-03 21:13:13
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords litestar saq
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Litestar SAQ

> [!IMPORTANT]
> This plugin currently contains minimal features and is a work-in-progress

## Installation

```shell
pip install litestar-saq
```

## Usage

Here is a basic application that demonstrates how to use the plugin.

```python
from __future__ import annotations

from litestar import Litestar

from litestar_saq import QueueConfig, SAQConfig, SAQPlugin

saq = SAQPlugin(config=SAQConfig(redis_url="redis://localhost:6397/0", queue_configs=[QueueConfig(name="samples")]))
app = Litestar(plugins=[saq])


```

You can start a background worker with the following command now:

```shell
litestar --app-dir=examples/ --app basic:app workers run
Using Litestar app from env: 'basic:app'
Starting SAQ Workers ──────────────────────────────────────────────────────────────────
INFO - 2023-10-04 17:39:03,255 - saq - worker - Worker starting: Queue<redis=Redis<ConnectionPool<Connection<host=localhost,port=6397,db=0>>>, name='samples'>
INFO - 2023-10-04 17:39:06,545 - saq - worker - Worker shutting down
```

You can also start the process for only specific queues. This is helpful if you want separated processes working on different queues instead of combining them.

```shell
litestar --app-dir=examples/ --app basic:app workers run --queues sample
Using Litestar app from env: 'basic:app'
Starting SAQ Workers ──────────────────────────────────────────────────────────────────
INFO - 2023-10-04 17:39:03,255 - saq - worker - Worker starting: Queue<redis=Redis<ConnectionPool<Connection<host=localhost,port=6397,db=0>>>, name='samples'>
INFO - 2023-10-04 17:39:06,545 - saq - worker - Worker shutting down
```

If you are starting the process for only specific queues and still want to read from the other queues or enqueue a task into another queue that was not initialized in your worker or is found somewhere else, you can do so like here

```
import os
from saq import Queue


def get_queue_directly(queue_name: str, redis_url: str) -> Queue:
    return Queue.from_url(redis_url, name=queue_name)

redis_url = os.getenv("REDIS_URL")
queue = get_queue_directly("queue-in-other-process", redis_url)
# Get queue info
info = await queue.info(jobs=True)
# Enqueue new task
queue.enqueue(
    ....
)
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "litestar-saq",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "litestar, saq",
    "author": null,
    "author_email": "Cody Fincher <cody.fincher@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/d9/69/14d1dc2699bea08f94d767c57c571fb3e527c0efab89c71a670aae9d7a2c/litestar_saq-0.2.0.tar.gz",
    "platform": null,
    "description": "# Litestar SAQ\n\n> [!IMPORTANT]\n> This plugin currently contains minimal features and is a work-in-progress\n\n## Installation\n\n```shell\npip install litestar-saq\n```\n\n## Usage\n\nHere is a basic application that demonstrates how to use the plugin.\n\n```python\nfrom __future__ import annotations\n\nfrom litestar import Litestar\n\nfrom litestar_saq import QueueConfig, SAQConfig, SAQPlugin\n\nsaq = SAQPlugin(config=SAQConfig(redis_url=\"redis://localhost:6397/0\", queue_configs=[QueueConfig(name=\"samples\")]))\napp = Litestar(plugins=[saq])\n\n\n```\n\nYou can start a background worker with the following command now:\n\n```shell\nlitestar --app-dir=examples/ --app basic:app workers run\nUsing Litestar app from env: 'basic:app'\nStarting SAQ Workers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nINFO - 2023-10-04 17:39:03,255 - saq - worker - Worker starting: Queue<redis=Redis<ConnectionPool<Connection<host=localhost,port=6397,db=0>>>, name='samples'>\nINFO - 2023-10-04 17:39:06,545 - saq - worker - Worker shutting down\n```\n\nYou can also start the process for only specific queues. This is helpful if you want separated processes working on different queues instead of combining them.\n\n```shell\nlitestar --app-dir=examples/ --app basic:app workers run --queues sample\nUsing Litestar app from env: 'basic:app'\nStarting SAQ Workers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nINFO - 2023-10-04 17:39:03,255 - saq - worker - Worker starting: Queue<redis=Redis<ConnectionPool<Connection<host=localhost,port=6397,db=0>>>, name='samples'>\nINFO - 2023-10-04 17:39:06,545 - saq - worker - Worker shutting down\n```\n\nIf you are starting the process for only specific queues and still want to read from the other queues or enqueue a task into another queue that was not initialized in your worker or is found somewhere else, you can do so like here\n\n```\nimport os\nfrom saq import Queue\n\n\ndef get_queue_directly(queue_name: str, redis_url: str) -> Queue:\n    return Queue.from_url(redis_url, name=queue_name)\n\nredis_url = os.getenv(\"REDIS_URL\")\nqueue = get_queue_directly(\"queue-in-other-process\", redis_url)\n# Get queue info\ninfo = await queue.info(jobs=True)\n# Enqueue new task\nqueue.enqueue(\n    ....\n)\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Litestar integration for SAQ",
    "version": "0.2.0",
    "project_urls": {
        "Changelog": "https://cofin.github.io/litesatr-saq/latest/changelog",
        "Discord": "https://discord.gg/X3FJqy8d2j",
        "Documentation": "https://cofin.github.io/litesatr-saq/latest/",
        "Homepage": "https://cofin.github.io/litesatr-saq/latest/",
        "Issue": "https://github.com/cofin/litestar-saq/issues/",
        "Source": "https://github.com/cofin/litestar-saq"
    },
    "split_keywords": [
        "litestar",
        " saq"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "268216186d660b71c9c49ac1408aca6e031ec3b82517a69c3fc3449ef7de3dd3",
                "md5": "b174c1247b57060445e5295457451063",
                "sha256": "eb92845e9ae66eb1b9a19a34df353acbf64b5de8ae192859d9f46a8f06a25cb4"
            },
            "downloads": -1,
            "filename": "litestar_saq-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b174c1247b57060445e5295457451063",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 14432,
            "upload_time": "2024-09-03T21:13:11",
            "upload_time_iso_8601": "2024-09-03T21:13:11.893760Z",
            "url": "https://files.pythonhosted.org/packages/26/82/16186d660b71c9c49ac1408aca6e031ec3b82517a69c3fc3449ef7de3dd3/litestar_saq-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d96914d1dc2699bea08f94d767c57c571fb3e527c0efab89c71a670aae9d7a2c",
                "md5": "3132424f67aec8a9ed5927a8628f387e",
                "sha256": "d2b2301198b4d36325e2a8f1e612e42485e4472e8f660562631ad2d65636de64"
            },
            "downloads": -1,
            "filename": "litestar_saq-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3132424f67aec8a9ed5927a8628f387e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 85053,
            "upload_time": "2024-09-03T21:13:13",
            "upload_time_iso_8601": "2024-09-03T21:13:13.072793Z",
            "url": "https://files.pythonhosted.org/packages/d9/69/14d1dc2699bea08f94d767c57c571fb3e527c0efab89c71a670aae9d7a2c/litestar_saq-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-03 21:13:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cofin",
    "github_project": "litestar-saq",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "litestar-saq"
}
        
Elapsed time: 0.71327s