{"id":46811714,"url":"https://github.com/morry98/fastapi-task-manager","last_synced_at":"2026-03-10T08:04:53.338Z","repository":{"id":300996471,"uuid":"1007794252","full_name":"Morry98/fastapi-task-manager","owner":"Morry98","description":"Lightweight, efficient and fast to code scheduled task management system built on FastAPI","archived":false,"fork":false,"pushed_at":"2026-03-08T16:10:20.000Z","size":1150,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-08T16:15:56.553Z","etag":null,"topics":["fastapi","redis","task-manager"],"latest_commit_sha":null,"homepage":"https://morry98.github.io/fastapi-task-manager/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Morry98.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-24T14:37:32.000Z","updated_at":"2026-02-12T06:55:29.000Z","dependencies_parsed_at":"2025-06-24T16:50:15.973Z","dependency_job_id":"5c2151e9-90e3-43bc-b92a-e885424f1e5a","html_url":"https://github.com/Morry98/fastapi-task-manager","commit_stats":null,"previous_names":["morry98/fastapi-task-manager"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/Morry98/fastapi-task-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morry98%2Ffastapi-task-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morry98%2Ffastapi-task-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morry98%2Ffastapi-task-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morry98%2Ffastapi-task-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Morry98","download_url":"https://codeload.github.com/Morry98/fastapi-task-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morry98%2Ffastapi-task-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30327582,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastapi","redis","task-manager"],"created_at":"2026-03-10T08:04:52.491Z","updated_at":"2026-03-10T08:04:53.309Z","avatar_url":"https://github.com/Morry98.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://fastapi-task-manager.morry98.com\"\u003e\u003cimg src=\"https://fastapi-task-manager.morry98.com/assets/images/logo-text-purple.svg\" alt=\"FastAPI Task Manager\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cem\u003eLightweight, efficient and fast to code scheduled task management system built on FastAPI\u003c/em\u003e\n\u003c/p\u003e\n\n\nLightweight, efficient and fast to code scheduled task management system built on FastAPI.\n\n[![PyPI - Version](https://img.shields.io/pypi/v/fastapi-task-manager?style=plastic\u0026color=964de0)](https://pypi.org/project/fastapi-task-manager/)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/fastapi-task-manager?style=plastic\u0026label=pypi%20download\u0026color=964de0)](https://pypi.org/project/fastapi-task-manager/)\n[![PyPI - License](https://img.shields.io/pypi/l/fastapi-task-manager?style=plastic\u0026color=964de0)](https://github.com/Morry98/fastapi-task-manager/blob/main/LICENSE)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fastapi-task-manager?style=plastic\u0026color=964de0)](https://pypi.org/project/fastapi-task-manager/)\n[![Pepy Total Downloads](https://img.shields.io/pepy/dt/fastapi-task-manager?style=plastic\u0026color=964de0)](https://pepy.tech/project/fastapi-task-manager)\n[![Coveralls](https://img.shields.io/coverallsCoverage/github/Morry98/fastapi-task-manager?style=plastic\u0026color=964de0)](https://coveralls.io/github/Morry98/fastapi-task-manager)\n\n---\n\n**Documentation**: [https://fastapi-task-manager.morry98.com](https://fastapi-task-manager.morry98.com)\n\n**Source Code**: [https://github.com/Morry98/fastapi-task-manager](https://github.com/Morry98/fastapi-task-manager)\n\n---\n\n## Overview\n\nFastAPI Task Manager is a lightweight and efficient scheduled task management system built on top of FastAPI and Redis. It is designed to help developers easily create, manage, and execute scheduled tasks within their FastAPI applications.\n\n## Key Features\n\n- **FastAPI Extension** - Built as an extension to FastAPI, making it easy to integrate into existing FastAPI applications and leverage its features\n- **Redis-Based** - Uses Redis as the backend for storing task information, ensuring high performance and single-instance execution\n- **Fast to Code** - Increase the speed to develop scheduled tasks by about 400% to 500%, only a wrapper function is needed*\n- **Fewer Bugs** - Reduce about 60% of human (developer) induced errors managing lock, Redis keys and task execution*\n- **Scheduled Tasks** - Provides a simple and intuitive API for defining and scheduling tasks to run at specific intervals or times\n- **Task Management** - Includes FastAPI router to manage tasks, such as pausing, resuming, and monitoring execution information\n- **Easy to Use** - Designed to be easy to use and learn. Less time reading docs\n- **Robust** - Get production-ready code\n\n\u003csmall\u003e* estimation based on real production task migrated to FastAPI task manager from custom \"cron job\" solution.\u003c/small\u003e\n\n## Requirements\n\nFastAPI Task Manager stands on the shoulders of giants:\n\n- [FastAPI](https://fastapi.tiangolo.com) - Modern, fast web framework for building APIs\n- [Redis](https://redis.io/) - In-memory data structure store for task storage and locking\n\n## Installation\n\nYou need to have a FastAPI project set up. If you don't have one, check the [FastAPI installation tutorial](https://fastapi.tiangolo.com/#installation).\n\nInstall FastAPI Task Manager using pip:\n```console\npip install fastapi-task-manager\n```\n\n## Quick Example\n\nHere's a simple example to get you started:\n```python\nfrom fastapi import FastAPI\nfrom fastapi_task_manager import TaskManager, task, TaskGroup\nfrom fastapi_task_manager import Config as ManagerConfig\nfrom pydantic_settings import BaseSettings, SettingsConfigDict\n\n\nclass Config(BaseSettings):\n    model_config = SettingsConfigDict(\n        # `.env.prod` takes priority over `.env`\n        env_file=(\".env\", \".env.prod\"),\n        extra=\"forbid\",\n    )\n\n    # --------- Redis config variables ---------\n    redis_host: str | None = None\n    redis_port: int = 6379\n    redis_password: str | None = None\n    redis_db: int = 0\n    # --------- End of redis config variables ---------\n\n    # --------- App config variables ---------\n    app_name: str = \"my_fastapi_app\"\n    concurrent_tasks: int = 3\n    # --------- End of app config variables ---------\n\nCONFIG = Config()\n\napp = FastAPI()\nrouter = APIRouter()\n\ntask_manager = TaskManager(\n    config=ManagerConfig(\n        redis_host=CONFIG.redis_host,\n        redis_port=CONFIG.redis_port,\n        redis_password=CONFIG.redis_password,\n        redis_db=CONFIG.redis_db,\n        concurrent_tasks=CONFIG.concurrent_tasks,\n        redis_key_prefix=CONFIG.app_name,\n    ),\n    app=app,\n)\nmy_example_task_group = TaskGroup(\n  tags=[\"example\"],\n  name=\"My Example Task Group\",\n)\ntask_manager.add_task_group(my_example_task_group)\n\nmanager_router = task_manager.get_manager_router()\nrouter.include_router(\n  manager_router,\n  prefix=\"/task-manager\",\n  tags=[\"task-manager\"],\n)\n\napp.include_router(router)\n\n@my_example_task_group.add_task(\n  \"*/5 * * * *\",  # Run every 5 minutes\n  name=\"my_scheduled_task\",\n  description=\"This is my scheduled task\"\n)\nasync def my_scheduled_task():\n    print(\"Task executed!\")\n    # Your task logic here\n```\n\n## License\n\nThis project is licensed under the terms of the [MIT license](https://github.com/Morry98/fastapi-task-manager/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorry98%2Ffastapi-task-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorry98%2Ffastapi-task-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorry98%2Ffastapi-task-manager/lists"}