An open API service indexing awesome lists of open source software.

https://github.com/dipanshu1707/scheduler

Advanced Python Dynamic Scheduler running on FastAPI
https://github.com/dipanshu1707/scheduler

cron cron-jobs deep-learning hacktoberfest java javascript job nextjs pydata python scheduled-jobs sidekiq t3-stack task

Last synced: 6 months ago
JSON representation

Advanced Python Dynamic Scheduler running on FastAPI

Awesome Lists containing this project

README

          

# 📅 Advanced Python Dynamic Scheduler

![Python](https://img.shields.io/badge/Python-3.8%2B-blue.svg) ![FastAPI](https://img.shields.io/badge/FastAPI-0.68.0-blue.svg) ![APScheduler](https://img.shields.io/badge/APScheduler-3.7.0-blue.svg) ![SQLAlchemy](https://img.shields.io/badge/SQLAlchemy-1.4.22-blue.svg) ![Uvicorn](https://img.shields.io/badge/Uvicorn-0.15.0-blue.svg)

Welcome to the **Advanced Python Dynamic Scheduler**! This repository provides a powerful and flexible scheduling tool built with Python and FastAPI. Whether you need to run background tasks, schedule cron jobs, or manage complex workflows, this scheduler has you covered.

## 🚀 Quick Start

To get started with the Advanced Python Dynamic Scheduler, download the latest release from the [Releases section](https://github.com/Dipanshu1707/scheduler/releases). Once downloaded, follow the instructions to execute the application.

### Prerequisites

Before you start, ensure you have the following installed:

- Python 3.8 or higher
- pip (Python package installer)
- A database (e.g., SQLite, PostgreSQL)

### Installation

1. Clone the repository:

```bash
git clone https://github.com/Dipanshu1707/scheduler.git
cd scheduler
```

2. Install the required packages:

```bash
pip install -r requirements.txt
```

3. Configure your database in the `config.py` file.

4. Run the application:

```bash
uvicorn main:app --reload
```

## 📚 Features

- **Dynamic Scheduling**: Create, update, and delete jobs at runtime.
- **Cron Jobs**: Schedule jobs using cron syntax for precise timing.
- **FastAPI Integration**: Build APIs effortlessly with FastAPI.
- **Database Support**: Use SQLAlchemy for ORM capabilities.
- **Web Interface**: Manage your jobs through a simple web interface.

## 🌟 Topics Covered

This repository includes various topics and technologies:

- **APScheduler**: A powerful library for scheduling jobs in Python.
- **Cron**: Schedule tasks using cron syntax for recurring jobs.
- **FastAPI**: A modern web framework for building APIs quickly.
- **LangGraph**: Visualize your task dependencies and flows.
- **Python**: The programming language used for development.
- **Scheduler**: The core functionality of this repository.
- **SQLAlchemy**: ORM for database interactions.
- **Uvicorn**: ASGI server for running FastAPI applications.

## 📦 Releases

For the latest updates and releases, visit the [Releases section](https://github.com/Dipanshu1707/scheduler/releases). Here, you can download the latest version and find the necessary files to execute.

## 🔍 Usage

### Creating a Job

To create a job, you can use the following endpoint:

```http
POST /jobs
```

**Request Body:**

```json
{
"name": "Job Name",
"schedule": "0 * * * *", // Cron expression
"task": "task_function_name",
"args": ["arg1", "arg2"]
}
```

### Listing Jobs

To list all scheduled jobs, use:

```http
GET /jobs
```

### Deleting a Job

To delete a job, send a DELETE request to:

```http
DELETE /jobs/{job_id}
```

## 📊 Architecture

The Advanced Python Dynamic Scheduler is designed with a modular architecture. Below is a high-level overview:

- **API Layer**: Built using FastAPI, handles all incoming requests.
- **Scheduler Layer**: Manages job scheduling using APScheduler.
- **Database Layer**: Interacts with the database using SQLAlchemy.
- **Task Layer**: Contains the logic for tasks that need to be executed.

## 🔗 Links

- [GitHub Repository](https://github.com/Dipanshu1707/scheduler)
- [Releases Section](https://github.com/Dipanshu1707/scheduler/releases)

## 🛠️ Contributing

We welcome contributions! To contribute:

1. Fork the repository.
2. Create a new branch.
3. Make your changes.
4. Submit a pull request.

Please ensure your code follows the project's coding standards.

## 📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

## 🤝 Acknowledgments

We would like to thank the developers of the libraries and frameworks used in this project:

- [FastAPI](https://fastapi.tiangolo.com/)
- [APScheduler](https://apscheduler.readthedocs.io/en/stable/)
- [SQLAlchemy](https://www.sqlalchemy.org/)
- [Uvicorn](https://www.uvicorn.org/)

## 💬 Support

If you have any questions or need support, feel free to open an issue in the repository or reach out to the maintainers.

---

This README provides a comprehensive overview of the Advanced Python Dynamic Scheduler. For further details and updates, please visit the [Releases section](https://github.com/Dipanshu1707/scheduler/releases).