diff --git a/argos/server/routes/api.py b/argos/server/routes/api.py index a23e830..8e0e177 100644 --- a/argos/server/routes/api.py +++ b/argos/server/routes/api.py @@ -1,7 +1,7 @@ """Web interface for machines""" from typing import List, Union -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, BackgroundTasks, Depends, Request from sqlalchemy.orm import Session from argos.logging import logger @@ -30,6 +30,7 @@ async def read_tasks( async def create_results( request: Request, results: List[AgentResult], + background_tasks: BackgroundTasks, db: Session = Depends(get_db), config: Config = Depends(get_config), agent_id: Union[None, str] = None, @@ -59,8 +60,9 @@ async def create_results( # Don’t create an alert if the severity has not changed if last_severity != severity: - # XXX Use a job queue or make it async - handle_alert(config, result, task, severity, last_severity, request) + background_tasks.add_task( + handle_alert, config, result, task, severity, last_severity, request + ) db_results.append(result) db.commit()