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.tar.gz
(14.9 kB
view hashes)
Built Distribution
quesadilla-0.5.0-py3-none-any.whl
(15.4 kB
view hashes)
Close
Hashes for quesadilla-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bdec3df6353c35b38ccc0b448373b59453ac1eabd87a41f9533e1a0fca223c8 |
|
MD5 | e8ccfc21ed7934194f57f0c18351386e |
|
BLAKE2b-256 | 0a5d347c9b30fc418850889f7bfdff59e44ea84755cf07c268104b1207c24a67 |