Multi stages task queue
Project description
TasKue
Multi stages task queue uses Redis as a backend.
Features
- Multi stages.
- Retry on fail for a defined number of retires.
- Capture task logs.
- Task can be taged with label so it will run only on runners that has the same tag.
- Skip task if any task of the previous stages failed.
Installation
pip install taskue
Getting started
Start a runner
taskue runner start --redis-host <localhost> --redis-port <6379>
More options:
tags: Runner tags, taged tasks will run only on runners which has its tagtimeout: Runner timeout, task timeout overwrites it (default 1 hour)run_untaged_tasks: Allow runner to run untaged tasks (enabled by default).path: add the path of a module to include.
How it works
from redis import Redis
from taskue import Taskue, Task
tskue = Taskue(Redis())
# define tasks
t1 = Task()
t1.execute(print, "Hello from task 1")
t1.retries = 3 # retry up to 3 times on failure
t2 = Task()
t2.timeout = 5 # set task timeout to 5
t2.execute(print, "Hello from task 2")
t3 = Task()
t3.skip_on_failure = True # skip this task if any task of the previous stage failed
t3.execute(print, "Hello from task 3")
Execute single task
# execute single task
task_uid = tskue.run(t1)
or execute multiple tasks as a workflow
# run task t1 and task t2 in stage 1 and task t3 in stage 2
workflow_uid = tskue.run_workflow([[t1, t2], [t3]])
Hint: All the tasks in the same stage run in parallel, and each stage starts when the previous stage finish.
CLI
taskue --help
Usage: cli.py [OPTIONS] COMMAND [ARGS]...
Options:
--redis-host TEXT redis hostname
--redis-port INTEGER redis port
--help Show this message and exit.
Commands:
runner
task
workflow
commands
runner:start: start new runner
task:list: list all tasksget: get task info using its uidlogsget task logsdeletedelete task
workflowlist: list all workflowsget: get workflow info using its uidlogsget workflow logsdeletedelete workflow
To Do
- Detect dead runner and reschedule its task.
- Add more docs and examples
- Add tests
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
taskue-0.3.tar.gz
(7.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
taskue-0.3-py3-none-any.whl
(10.1 kB
view details)
File details
Details for the file taskue-0.3.tar.gz.
File metadata
- Download URL: taskue-0.3.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51b790c84ebd0aa98473a1018462761501703747077898897b8dab39b81b9431
|
|
| MD5 |
9c74271fe2f27077a59077e851600564
|
|
| BLAKE2b-256 |
b6144174f5be79a5e52319b7ef1ad87a21731997d138764e7cabe4678f713ba2
|
File details
Details for the file taskue-0.3-py3-none-any.whl.
File metadata
- Download URL: taskue-0.3-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5e1013aa93f8d21505b38739e77c56fe445eea61e8fc541dc2d7516ac0f454e
|
|
| MD5 |
9f3bc7f2f3e27f60a266c13bffee9d9e
|
|
| BLAKE2b-256 |
ba4db396b863444ab18c32c90a5e8020164d9d09742b36115f87404ce75d10e6
|