Distributed Task Framework
Project description
Task Lattice
Distributed Task Framework for distributing work across workers
🚀 Key Features
Task Lattice's key features include:
- Broker Support - Following brokers are supported:
- Solace
- Kafka (Day 2)
- Queues - Multiple queue/priority queue support
- Async - Async tasks supported incl. execution in event loop
- Customisation - Extensive customisation of queue, worker and tasks including:
- Automated task retry
- Dead letter queues
- Worker concurrency
- Queue capacity
- ...
- Minimal code - Minimal code is required to use task lattice
- DAG support - Supports DAG (directed acyclical graph) workflow execution
- Monitoring - Supports live monitoring of the queues, workers, tasks
ℹ️ Installation
# Using pip
pip install task-lattice
# Using poetry
poetry add task-lattice
# Using uv
uv add task-lattice
📦 Dependencies
TBD
📘 How to use
Step 1 - Define your Task Lattice application
from task_lattice import TaskLattice, SolaceConnectionDetails, QueueDetails
app = TaskLattice(
SolaceConnectionDetails(host="localhost", port=55555, vpn="default", username="admin", password="admin"),
TaskLatticeConfig(
queues=[
QueueConfig(name="default", topic="tasks.default"),
],
default_queue="default"
),
)
Step 2 - Define your tasks:
@app.task
def sync_function():
...
@app.task
async def async_function():
...
Step 3 - Enqueue a task:
task = sync_function.create()
app.enqueue(task)
Step 4 - Run a worker to process tasks:
app.start_worker()
📘 Logging
TBD
📘 Extensions
TBD
ℹ️ License
This project is licensed under the terms of the MIT 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
task_lattice-0.0.1a0.tar.gz
(4.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file task_lattice-0.0.1a0.tar.gz.
File metadata
- Download URL: task_lattice-0.0.1a0.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f79df7ab0effea761e4439f0c0226d6022919784e2573f24f632ff66ae4664f8
|
|
| MD5 |
45d7dd87fb3bc54397f8c7c1ed900052
|
|
| BLAKE2b-256 |
de22f7e876cfdd5a96ebcbbcaaf31cc9909a223e57f751b57f37cb3c660fa94d
|
File details
Details for the file task_lattice-0.0.1a0-py3-none-any.whl.
File metadata
- Download URL: task_lattice-0.0.1a0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14d4b09c21412a918f6a95374192bcd7a20a385f72778e54e6301656a520109e
|
|
| MD5 |
82c0b05b4982974f278bc4e2434c5137
|
|
| BLAKE2b-256 |
87e980a295e95b3ef387433a1fd997b52051790d70c2d3469713835e1d06d639
|