feat: auto-refresh calendar subscriptions
This commit is contained in:
+16
-2
@@ -1,3 +1,4 @@
|
||||
import asyncio
|
||||
import base64
|
||||
import json
|
||||
import logging
|
||||
@@ -30,8 +31,9 @@ from .auth import (
|
||||
verify_password,
|
||||
)
|
||||
from .backup import router as backup_router
|
||||
from .calendar_refresh import calendar_refresh_loop
|
||||
from .calendar_router import router as calendar_router
|
||||
from .db import create_schema, get_db
|
||||
from .db import create_schema, get_db, get_session_factory
|
||||
from .models import (
|
||||
AppState,
|
||||
Attachment,
|
||||
@@ -80,7 +82,19 @@ async def lifespan(app: FastAPI):
|
||||
|
||||
if get_settings().auto_create_schema:
|
||||
await create_schema()
|
||||
yield
|
||||
stop_calendar_refresh = asyncio.Event()
|
||||
calendar_refresh_task = asyncio.create_task(
|
||||
calendar_refresh_loop(get_session_factory(), stop_calendar_refresh)
|
||||
)
|
||||
try:
|
||||
yield
|
||||
finally:
|
||||
stop_calendar_refresh.set()
|
||||
calendar_refresh_task.cancel()
|
||||
try:
|
||||
await calendar_refresh_task
|
||||
except asyncio.CancelledError:
|
||||
pass
|
||||
|
||||
|
||||
app = FastAPI(
|
||||
|
||||
Reference in New Issue
Block a user