Skip to main content

An extendable general purpose task manager or workflow engine.

Project description

o   o   O   o-o  o   o o   o o   o 
|\ /|  / \ o     |\  | |   | |\ /| 
| O | o---o|  -o | \ | |   | | O | 
|   | |   |o   | |  \| |   | |   | 
o   o o   o o-o  o   o  o-o  o   o 
                                   
                                   
     o-o  o--o  o   o  o-o         
    o   o |   | |   | |            
    |   | O--o  |   |  o-o         
    o   o |     |   |     |        
     o-o  o      o-o  o--o         

About

A python based task processing engine backend.

Usage

The intent of this project is to use it as a library to process tasks that conform to a certain style.

A typical stack will include the following components:

graph TD
    A[Client Application] -- parses configuration using --> B[Parsing Library]
    A -- execute parsed configuration using --> C[magnum-opus]

The client application has to provide the following implementations:

Base Class Usage
LoggerWrapper ( optional ) Used for logging. If not implemented, log messages from magnum-opus will be printed to STDOUT
StatePersistance ( optional ) Used to persist state during the various stages of task execution. Can also be used by TaskProcessor implementation to retrieve previous execution state of any individual task. If not implemented by the client, no persistance functionality will be provided/available.
TaskProcessor ( required ) This is the class that implements the logic of processing a given task. No out-of-the-bos task processors exist, so the client must supply it's own.

The client then creates an instance of Tasks and adds all TaskProcessor implementations before adding Task objects. Finally, the processing is performed by calling the process_context() method of the Tasks instance.

The opus-instrumenta project provides some "standard" TaskProcessor implementations for common types of tasks.

Hello World Example

Here is a really quick "hello world" example that will implement a TaskProcessor that creates a file with the text "Hello World!" in it:

python3 examples/hello_world.py

The example can also be observed as a unit test by running the test file tests/test_hello_world.py

Development Quick Start

Preparing your local system for development:

python3 -m venv venv

. venv/bin/activate

pip3 install coverage build twine

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

magnum_opus-1.tar.gz (39.2 kB view details)

Uploaded Source

File details

Details for the file magnum_opus-1.tar.gz.

File metadata

  • Download URL: magnum_opus-1.tar.gz
  • Upload date:
  • Size: 39.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for magnum_opus-1.tar.gz
Algorithm Hash digest
SHA256 e83c3a594571ff9e9674d30531018ac1f83a60dfb7141e15216daba52727603c
MD5 5f369123924e01443722a3ff9cae09b6
BLAKE2b-256 65f2653e26e5babe7971c1e7e962842c1e22043fd5252370c4ee4babc75b4d00

See more details on using hashes here.

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