Job queues in python with asyncio and redis
Project description
Aiorq
Introduction
Aiorq is a distributed task queue with asyncio and redis, which rewrite from arq to make improvement and include web interface.
See documentation for more details.
Requirements
- redis >= 5.0
- aioredis >= 2.0.0
Install
pip install aiorq
Quick Start
Task Definition
# demo.py
# -*- coding: utf-8 -*-
import asyncio
import os
from aiorq.connections import RedisSettings
from aiorq.cron import cron
async def say_hello(ctx, name) -> None:
await asyncio.sleep(5)
print(f"Hello {name}")
async def startup(ctx):
print("starting... done")
async def shutdown(ctx):
print("ending... done")
async def run_cron(ctx, name_):
return f"hello {name_}"
class WorkerSettings:
redis_settings = RedisSettings(
host=os.getenv("REDIS_HOST", "127.0.0.1"),
port=os.getenv("REDIS_PORT", 6379),
database=os.getenv("REDIS_DATABASE", 0),
password=os.getenv("REDIS_PASSWORD", None)
)
functions = [say_hello]
on_startup = startup
on_shutdown = shutdown
cron_jobs = [
cron(coroutine=run_cron, kwargs={"name_": "pai"}, hour={17, 12, 18}, minute=40, second=50,
keep_result_forever=True)
]
Run aiorq worker
> aiorq tasks.WorkerSettings worker
15:08:50: Starting Queue: ohuo
15:08:50: Starting Worker: ohuo@04dce85c-1798-43eb-89d8-7c6d78919feb
15:08:50: Starting Functions: say_hello, EnHeng
15:08:50: redis_version=5.0.10 mem_usage=731.12K clients_connected=2 db_keys=9
starting...
Integration in FastAPI
> aiorq tasks.WorkerSettings server
INFO: Started server process [4524]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8080 (Press CTRL+C to quit)
Dashboard
See dashboard for more details.
Thanks
License
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
aiorq-1.1.9.tar.gz
(53.9 kB
view details)
File details
Details for the file aiorq-1.1.9.tar.gz
.
File metadata
- Download URL: aiorq-1.1.9.tar.gz
- Upload date:
- Size: 53.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.10.1 pkginfo/1.7.1 requests/2.27.0 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52fd22a6b146b1e92b0fb186d7d4d0ffcaaa64f1ea938fec0b2c01f11b177d83 |
|
MD5 | 960110b0e3c1cbe8a75fc34a039318c9 |
|
BLAKE2b-256 | 579b994b8de5e177161681cc2b90e0e07650c890a70da4f6be5dd6a868b9fc63 |