feat: connect router; add hourly scheduling
This commit is contained in:
parent
4b9b805632
commit
e02b250a51
2 changed files with 38 additions and 1 deletions
3
app.py
3
app.py
|
|
@ -211,3 +211,6 @@ app.include_router(msftRouter)
|
|||
|
||||
from modules.routes.routeSecurityGoogle import router as googleRouter
|
||||
app.include_router(googleRouter)
|
||||
|
||||
from modules.routes.routeJira import router as jiraRouter
|
||||
app.include_router(jiraRouter)
|
||||
|
|
@ -1,16 +1,50 @@
|
|||
# Configure logger
|
||||
import logging
|
||||
from fastapi import APIRouter
|
||||
from fastapi import APIRouter, FastAPI
|
||||
from contextlib import asynccontextmanager
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
|
||||
from modules.connectors.connectorTicketJira import ConnectorTicketJira
|
||||
from modules.connectors.connectorSharepoint import ConnectorSharepoint
|
||||
from modules.interfaces.interfaceTicketObjects import TicketSharepointSyncInterface
|
||||
|
||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
from apscheduler.triggers.cron import CronTrigger
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
scheduler = AsyncIOScheduler(timezone=ZoneInfo("Europe/Zurich"))
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def router_lifespan(app: FastAPI):
|
||||
# start scheduler when this router is mounted
|
||||
scheduler.add_job(
|
||||
perform_sync_jira_delta_group,
|
||||
CronTrigger(minute="0"), # run at the top of every hour
|
||||
id="jira_delta_group_sync",
|
||||
replace_existing=True,
|
||||
coalesce=True,
|
||||
max_instances=1,
|
||||
misfire_grace_time=1800,
|
||||
)
|
||||
scheduler.start()
|
||||
logger.info("APScheduler started (jira_delta_group_sync hourly)")
|
||||
try:
|
||||
yield
|
||||
finally:
|
||||
if scheduler.running:
|
||||
scheduler.shutdown(wait=False)
|
||||
logger.info("APScheduler stopped")
|
||||
|
||||
|
||||
router = APIRouter(
|
||||
prefix="/api/jira",
|
||||
tags=["JIRA Sync"],
|
||||
lifespan=router_lifespan,
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue