Skip to main content

Simple task manager to handle execution of tasks in AWS docker or any system. It use a handler that can be loaded dynamically.

Project description

Simple Task Manager (STMGR)

This is a simple task manager to start processes on AWS/Docker or other platforms. The app includes classes to manage tasks on AWS, but you can implement additional handlers dynamically.

You only need to create a class to handle the task that you want to start and register it in a database (DDBB). Below, I'll compare STMGR with Celery (since it's widely used) to explain the key differences and help you make an informed choice. Another good choice is Dramatiq. For a simple comparison between STMGR and Celery check

Requirements

  • Python 3.10 or newer
  • PostgreSQL
  • psycopg[binary]

Installation

This project can be installed using pip:

pip install simple-task-manager

Or it can be installed directly from git: pip install git+https://github.com/Fran-4c4/staskmgr

Upgrade from 1.5.x

  • Existing client code using TaskDB can remain synchronous.
  • The service runtime now uses an async SQLAlchemy layer internally.
  • Backward compatibility is preserved through compatibility modes:
    • LEGACY: old behavior only
    • AUTO: use safe mode when the upgraded schema is available
    • SAFE: require the upgraded schema and enable lease-based recovery
  • To upgrade an existing installation, apply config/ddbb_upgrade_1_6.sql before enabling SAFE mode.

See Upgrade guide.

Usage and requirements

  • First you need to configure the minimum parameters in order to run tasks. See Configuration
  • Second you need a database to store configuration and task management. See table creation in folder config/ddbb_script.sql or Configuration scripts. Actually only PostgreSQL is supported.

More info in github GitHub.


Adding handlers

In order to manage other types you need to create a class and an entry in DDBB or in your appconfig.json in the section task_handlers. When the task is retrieved from DDBB it will look the handler. Below is an example of the Test task handler.

"task_handlers": {
    "TEST_MGR": {
      "config": {
        "task_handler": {
          "name": "TestTaskHandler",
          "path": "task_handlers",
          "class": "TestTaskHandler",
          "module": "test_task_handler",
          "launchType": "INTERNAL",
		      "task_next_status":"FINISHED"
        }
      }
    }
  }

Test in local

Install using pip in your project using the next command and changing x.x.x version.

pip install "path_to_dist/dist/Simple_Task_Manager-x.x.x-py3-none-any.whl" 

Sphinx documentation

  • There is a minimal documentation generated from source. See Documentation

Running as a Docker service

STMGR is normally deployed as a service inside Docker.

  1. Build an image based on Python 3.10 or newer.
  2. Install the package version you want to run.
  3. Mount the configuration and provide database credentials.
  4. Apply the SQL upgrade before enabling SAFE mode.

See Docker notes.

Docker handler modes

DockerTaskHandler now supports two modes:

  • DETACHED: default mode, intended for heavy containers. Launch and return immediately.
  • BLOCKING: wait for the container to finish. Intended for lightweight containers.
  • In DETACHED, STMGR can later reconcile the container state using external_ref when the upgraded schema is enabled.

See Docker handler guide.

License

licensed under Apache License 2.0

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

simple_task_manager-1.6.0.tar.gz (45.7 kB view details)

Uploaded Source

Built Distribution

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

simple_task_manager-1.6.0-py3-none-any.whl (51.3 kB view details)

Uploaded Python 3

File details

Details for the file simple_task_manager-1.6.0.tar.gz.

File metadata

  • Download URL: simple_task_manager-1.6.0.tar.gz
  • Upload date:
  • Size: 45.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for simple_task_manager-1.6.0.tar.gz
Algorithm Hash digest
SHA256 abb576a39aedb748f56a81f1bf227f0c2b950ef1111de2de1789de77e2bf8d19
MD5 3480070a889367d7d862f3cee28d6df9
BLAKE2b-256 dc03c7e9e3c3da8d8caab2651dacfc4c2c2756e456d867b8138b7bfdbc2f22e2

See more details on using hashes here.

File details

Details for the file simple_task_manager-1.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for simple_task_manager-1.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd2e34d7e29ecbe8f78302fd0b28804b15752842931e9c8874884155436c71ce
MD5 bbf0e1d0b87d0257754180bceb917ccf
BLAKE2b-256 baeb86658381422cbb702eebb8fc2810c0bfe3d8d649ceb013e48255f37783f0

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