Asyncpg and PostgreSQL integration for taskiq
Project description
TaskIQ - Asyncpg
TaskIQ-Asyncpg is a plugin for taskiq that adds a new result backend based on PostgreSQL and Asyncpg.
Installation
To use this project you must have installed core taskiq library:
pip install taskiq
This project can be installed using pip:
pip install taskiq-asyncpg
using poetry:
poetry add taskiq-asyncpg
using rye:
rye add taskiq-asyncpg
Usage
Let's see the example with the redis broker and PostgreSQL Asyncpg result backend:
# broker.py
import asyncio
from taskiq_redis import ListQueueBroker
from taskiq_asyncpg import AsyncpgResultBackend
asyncpg_result_backend = AsyncpgResultBackend(
dsn="postgres://postgres:postgres@localhost:5432/postgres",
)
# Or you can use PubSubBroker if you need broadcasting
broker = ListQueueBroker(
url="redis://localhost:6379",
result_backend=asyncpg_result_backend,
)
@broker.task
async def best_task_ever() -> None:
"""Solve all problems in the world."""
await asyncio.sleep(5.5)
print("All problems are solved!")
async def main():
await broker.startup()
task = await best_task_ever.kiq()
print(await task.wait_result())
await broker.shutdown()
if __name__ == "__main__":
asyncio.run(main())
AsyncpgResultBackend configuration
dsn
: connection string to PostgreSQL.keep_results
: flag to not remove results from Redis after reading.table_name
: name of the table in PostgreSQL to store TaskIQ results.field_for_task_id
: type of a field fortask_id
, you may need it if you want to have length of task_id more than 255 symbols.serializer
: type ofTaskiqAsyncpgSerializer
default isPickleSerializer
**connect_kwargs
: additional connection parameters, you can read more about it in Asyncpg repository.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
taskiq_asyncpg-0.3.2.tar.gz
(10.3 kB
view details)
File details
Details for the file taskiq_asyncpg-0.3.2.tar.gz
.
File metadata
- Download URL: taskiq_asyncpg-0.3.2.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f02ba4be248ad3564804d473627365d499f073cc97062671650db2d78a5d5ae |
|
MD5 | 989679ea3ddb791099bfed87631a94b5 |
|
BLAKE2b-256 | 1d4569fa76190e28add927ef220c7e92f06188ba5123108050a32a7c6a38c956 |