An elegant background task queue for the more civilized age
Project description
quesadilla
quesadilla
is an elegant background task queue for the more civilized age.
Example usage
First, install quesadilla
: pip install quesadilla==0.5.0
.
tasks.py
:
import logging
import random
from quesadilla.connectors.in_memory import ThreadSafeInMemoryConnector
from quesadilla.core import TaskNamespace, async_task, sync_task
logging.basicConfig(level=logging.INFO)
namespace = TaskNamespace("tasks", connector=ThreadSafeInMemoryConnector())
queue = namespace.queue("queue")
@sync_task(queue)
def simple_task(i: int) -> bool:
return i == 0
@async_task(queue)
async def simple_atask(i: int) -> bool:
return i == 0
# simulate someone adding jobs to the queue
# queue is preloaded with 200 tasks
for _ in range(100):
simple_task.queue(random.choice((0, 1)))
simple_atask.queue(random.choice((0, 1)))
Run with python -m quesadilla runners listener tasks::queue
.
Exit with SIGINT
(Ctrl + C) or SIGTERM
.
Roadmap
- support for retrying failed tasks
- support for cronjobs and heartbeat
- support for task priority
- support for delayed execution
- documentation
- a real-world connector! (most likely PostgreSQL with
psycopg
andSQLAlchemy 2.0
)
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
quesadilla-0.5.0.post1.tar.gz
(14.9 kB
view hashes)
Built Distribution
Close
Hashes for quesadilla-0.5.0.post1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bde0044e186d10ef5f214d7c5eda38829c58313a73c865eb167adb6a27bd2dcc |
|
MD5 | ada99934f987026d1771a0e99fca44f6 |
|
BLAKE2b-256 | 79cd6509cb275e52a219a3b2b5daaca4097559bcbac293b82b276201c12b50c6 |