Added a global config.py

This commit is contained in:
2025-09-05 12:27:01 +02:00
parent 8a5ff68f23
commit afd6383daa
3 changed files with 14 additions and 5 deletions

13
app.py
View File

@@ -9,10 +9,14 @@ from models import service, log
from typing import Any, Optional, cast from typing import Any, Optional, cast
import json import json
from datetime import timedelta from datetime import timedelta
from config import timeout
def prepare_chart_data(logs: list[log]) -> tuple[list[str], list[Optional[int]]]: # Prepares log data for chart.js chart
if len(logs) <= 0: def prepare_chart_data(
logs: list[log],
) -> tuple[list[str], list[Optional[int]]]:
if len(logs) <= 0: # Return empty if there are no logs
return ([], []) return ([], [])
x = [logs[0].dateCreated.isoformat()] x = [logs[0].dateCreated.isoformat()]
@@ -21,8 +25,11 @@ def prepare_chart_data(logs: list[log]) -> tuple[list[str], list[Optional[int]]]
for i in range(1, len(logs)): for i in range(1, len(logs)):
log1 = logs[i] log1 = logs[i]
log2 = logs[i - 1] log2 = logs[i - 1]
if (abs(log1.dateCreated - log2.dateCreated)) > timedelta(seconds=6):
# Check if the gap in points exceeds a threshold
if (abs(log1.dateCreated - log2.dateCreated)) > timedelta(
milliseconds=1.5 * (timeout + 1000)
):
x.append(log2.dateCreated.isoformat()) x.append(log2.dateCreated.isoformat())
y.append(None) y.append(None)

1
config.py Normal file
View File

@@ -0,0 +1 @@
timeout: int = 4000

View File

@@ -4,6 +4,7 @@ import asyncio
import time import time
from models import log, service from models import log, service
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import sessionmaker
from config import timeout as timeout_
async def ping(client: aiohttp.ClientSession, s: service) -> int: async def ping(client: aiohttp.ClientSession, s: service) -> int:
@@ -53,11 +54,11 @@ async def update_services(loop: asyncio.AbstractEventLoop):
# Create new session # Create new session
with app.app_context(): with app.app_context():
WorkerSession = sessionmaker(bind=db.engine) WorkerSession = sessionmaker(bind=db.engine)
timeout = aiohttp.client.ClientTimeout(total=4) timeout = aiohttp.client.ClientTimeout(total=timeout_ / 1000)
client = aiohttp.ClientSession(timeout=timeout, auto_decompress=False) client = aiohttp.ClientSession(timeout=timeout, auto_decompress=False)
while True: while True:
session = WorkerSession() session = WorkerSession()
sleeptask = asyncio.create_task(asyncio.sleep(5)) sleeptask = asyncio.create_task(asyncio.sleep(timeout_ / 1000 + 1))
tasks = [ tasks = [
check_service(client=client, s=s) check_service(client=client, s=s)
for s in session.query(service).all() for s in session.query(service).all()