Skip to content

agredyaev/async-python-sprint-2

Repository files navigation

Task Scheduling System

Python uv Ruff Actions status Pydantic MIT License

This project implements a flexible and efficient task scheduling system in Python. It's designed to handle various types of tasks, manage their execution, and provide a robust framework for complex task pipelines.

Key Features

  • Modular Architecture: The system is built with a modular design, allowing easy extension and customization.
  • Multiple Task Types: Supports different task types, including file operations and HTTP requests.
  • Context Management: Provides a context system for sharing data between tasks and tracking execution state.
  • State Persistence: Implements a file-based state manager for reliable task state storage and recovery.
  • Asynchronous Execution: Uses Python generators for non-blocking task execution.
  • Priority Scheduling: Tasks can be assigned priorities for optimized execution order.
  • Dependency Management: Supports task dependencies, ensuring proper execution order in complex workflows.
  • Error Handling and Retries: Includes built-in error handling and configurable retry mechanisms.
  • Extensible Task Registry: Allows easy registration and creation of new task types.

Docs

PlantUML

Deploy

# clone the repository
git clone https://github.com/agredyaev/async-python-sprint-2.git
cd async-python-sprint-2
# setup the environment
make setup
# activate the virtual environment
. ./.venv/bin/activate
# run the app
make run
# run the tests
make test

About

Project for praktikum

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published