Skip to main content

Framework for task processing executors and configuration

Project description

Task Processing

Interfaces and shared infrastructure for generic task processing (also known as taskproc) at Yelp.

Developer Setup

Pre-requisites

Running tests

From the root of the repository, run:

make

Repository Structure

/interfaces

Event

Runner

TaskExecutor

/plugins

Plugins can be chained to create a task execution pipeline with more than one property.

Kubernetes

Implements all required interfaces to talk to Kubernetes. This plugin uses kubernetes-client to communicate with Kubernetes.

/runners

Runners provide specific concurrency semantics and are supposed to be platform independent.

Sync

Running a task is a blocking operation. sync runners block until the running task has completed or a stop event is received.

Async

Provide callbacks for different events in tasks' lifecycle. async runners allow tasks to specify one or more EventHandlers which consist of predicates and callbacks. Predicates are evaluated when an update is received from the task (e.g. that it has terminated and whether or not it has succeded) and if the predicate passes, the callback is called.

Promise/Future

Running a task returns future object.

Subscription

Provide a queue object and receive all events in there.

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

task_processing-1.0.0.tar.gz (28.2 kB view details)

Uploaded Source

Built Distribution

task_processing-1.0.0-py2.py3-none-any.whl (34.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file task_processing-1.0.0.tar.gz.

File metadata

  • Download URL: task_processing-1.0.0.tar.gz
  • Upload date:
  • Size: 28.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.19

File hashes

Hashes for task_processing-1.0.0.tar.gz
Algorithm Hash digest
SHA256 25e34cc3778034451504ff32f2a2f339505175cb3236460e9c70ef223f218456
MD5 cd3e88ee9bc1a2eb164ff77a652682ec
BLAKE2b-256 313f2009e1e0e335ee905ea0cd66dfa944ba88cf03d9e60f7dc8ff1f4ad6cee2

See more details on using hashes here.

Provenance

File details

Details for the file task_processing-1.0.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for task_processing-1.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8a2f3a7f0d1bc1918f4c047c1ccc1d9c9957364abeb3668bc727147f31a115b3
MD5 8f012b539d07b2d25293d40b528bd386
BLAKE2b-256 ccb50c495a7adeaab9f69c9b38a4b7ace99a7ee34de5c9176f0f215d25db9be0

See more details on using hashes here.

Provenance

Supported by

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