Skip to main content

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 tag
  • timeout: 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 tasks
    • get: get task info using its uid
    • logs get task logs
    • delete delete task
  • workflow
    • list: list all workflows
    • get: get workflow info using its uid
    • logs get workflow logs
    • delete delete workflow

To Do

  • Detect dead runner and reschedule its task.
  • Add more docs and examples
  • Add tests

Project details


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

taskue-0.3-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

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

Hashes for taskue-0.3.tar.gz
Algorithm Hash digest
SHA256 51b790c84ebd0aa98473a1018462761501703747077898897b8dab39b81b9431
MD5 9c74271fe2f27077a59077e851600564
BLAKE2b-256 b6144174f5be79a5e52319b7ef1ad87a21731997d138764e7cabe4678f713ba2

See more details on using hashes here.

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

Hashes for taskue-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d5e1013aa93f8d21505b38739e77c56fe445eea61e8fc541dc2d7516ac0f454e
MD5 9f3bc7f2f3e27f60a266c13bffee9d9e
BLAKE2b-256 ba4db396b863444ab18c32c90a5e8020164d9d09742b36115f87404ce75d10e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page