Lightweight workflow executor SDK for Python
Project description
Rundown-Workers Python SDK (v0.1.0)
A highly developer-friendly, lightweight Python SDK for implementing and running workflow workers.
Installation
To install the SDK locally in editable mode (during development):
# install this once
pip install rundown-workers
#or
# From the project root (Manual build)
pip install -e sdk/python
Basic Usage
The SDK uses decorators to register worker functions.
import rundown_workers as rw
# Register a simple task
@rw.queue(name="greetings", max_retries=3)
def hello_task(payload):
print(f"[*] Received: {payload}")
return True
if __name__ == "__main__":
# Start all registered workers in separate polling threads
rw.run()
Advanced Features
1. Retries with Exponential Backoff
When enqueuing a job or defining a queue, you can specify max_retries. If your function raises an exception, the engine will automatically reschedule the job with an increasing delay (e.g., 5s, 20s, 45s).
2. Local Timeout Enforcement
You can set a timeout (in seconds) for each task. If your function hangs beyond this period, the worker will automatically:
- Detect the timeout.
- Report the failure to the engine.
- Move on to the next available job.
# This task will fail if it takes longer than 2 seconds
rw.enqueue(queue="greetings", payload="Hello!", timeout=2)
Internal Architecture
The Python SDK uses threading to handle local polling for multiple queues simultaneously and to monitor task execution times.
- Polling Loop: Each queue has its own daemon thread continuously hitting the
/pollendpoint. - Task Execution: Handlers are executed in a temporary thread with a
join(timeout=...)call to ensure the worker process doesn't hang.
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
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 rundown_workers-0.1.1.tar.gz.
File metadata
- Download URL: rundown_workers-0.1.1.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37cb1d4eca390676dea95451b6822953eafae2e03475e7bb2e3521a67691e231
|
|
| MD5 |
ba4a75ef1040666cf8a97708d23138d4
|
|
| BLAKE2b-256 |
004fd72b3e2df416b8c74d8869d6a656a09b8d103fcda45028ba04797a345b33
|
File details
Details for the file rundown_workers-0.1.1-py3-none-any.whl.
File metadata
- Download URL: rundown_workers-0.1.1-py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
197b5189ebb2b67b96a656da19930d83b796ed01869b1d0e28ff984aada4de66
|
|
| MD5 |
9af6c4438de7d74138f64881bef7ab17
|
|
| BLAKE2b-256 |
422534330abf24fadcbdac0e27dea28f9f7f558374d51ac07af1d539f52eed1a
|