Litestar integration for SAQ
Project description
Litestar SAQ
[!IMPORTANT] This plugin currently contains minimal features and is a work-in-progress
Installation
pip install litestar-saq
Usage
Here is a basic application that demonstrates how to use the plugin.
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:
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.
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(
....
)
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
File details
Details for the file litestar_saq-0.2.0.tar.gz
.
File metadata
- Download URL: litestar_saq-0.2.0.tar.gz
- Upload date:
- Size: 85.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2b2301198b4d36325e2a8f1e612e42485e4472e8f660562631ad2d65636de64 |
|
MD5 | 3132424f67aec8a9ed5927a8628f387e |
|
BLAKE2b-256 | d96914d1dc2699bea08f94d767c57c571fb3e527c0efab89c71a670aae9d7a2c |
File details
Details for the file litestar_saq-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: litestar_saq-0.2.0-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb92845e9ae66eb1b9a19a34df353acbf64b5de8ae192859d9f46a8f06a25cb4 |
|
MD5 | b174c1247b57060445e5295457451063 |
|
BLAKE2b-256 | 268216186d660b71c9c49ac1408aca6e031ec3b82517a69c3fc3449ef7de3dd3 |