feat(backend): basic support for background tasks

This commit is contained in:
Hayden
2021-10-23 16:42:59 -08:00
parent 7f99c3d113
commit 7055cb2c43
15 changed files with 226 additions and 19 deletions

View File

@@ -2,7 +2,7 @@ from fastapi import APIRouter
from mealie.routes.routers import AdminAPIRouter
from . import admin_about, admin_email, admin_group, admin_log
from . import admin_about, admin_email, admin_group, admin_log, admin_server_tasks
router = AdminAPIRouter(prefix="/admin")
@@ -10,3 +10,4 @@ router.include_router(admin_about.router, tags=["Admin: About"])
router.include_router(admin_log.router, tags=["Admin: Log"])
router.include_router(admin_group.router, tags=["Admin: Group"])
router.include_router(admin_email.router, tags=["Admin: Email"])
router.include_router(admin_server_tasks.router, tags=["Admin: Server Tasks"])

View File

@@ -0,0 +1,18 @@
from fastapi import Depends
from mealie.routes.routers import UserAPIRouter
from mealie.schema.server.tasks import ServerTask, ServerTaskNames
from mealie.services.server_tasks import BackgroundExecutor, test_executor_func
from mealie.services.server_tasks.tasks_http_service import AdminServerTasks
router = UserAPIRouter()
@router.get("/server-tasks", response_model=list[ServerTask])
def get_all_tasks(tasks_service: AdminServerTasks = Depends(AdminServerTasks.private)):
return tasks_service.get_all()
@router.post("/server-tasks", response_model=ServerTask)
def create_test_tasks(bg_executor: BackgroundExecutor = Depends(BackgroundExecutor.private)):
return bg_executor.dispatch(ServerTaskNames.default, test_executor_func)