forked from 0xWheatyz/SPARC
Merge pull request 'Refactor scheduler.py to use pooled DatabaseClient' (#1665) from feature/1658-scheduler-pooled-db into main
Merge: Refactor scheduler.py to use pooled DatabaseClient Closes #1658
This commit was merged in pull request #1665.
This commit is contained in:
+12
-7
@@ -2,14 +2,17 @@
|
||||
|
||||
Uses APScheduler to periodically re-analyze tracked companies and
|
||||
detect significant changes in patent counts.
|
||||
|
||||
The scheduler reuses the application-level pooled DatabaseClient
|
||||
(from ``SPARC.auth``) instead of creating its own connection, which
|
||||
avoids exhausting the database connection pool under load.
|
||||
"""
|
||||
|
||||
import logging
|
||||
import os
|
||||
|
||||
from SPARC import config
|
||||
from SPARC.analyzer import CompanyAnalyzer
|
||||
from SPARC.database import DatabaseClient
|
||||
from SPARC.auth import get_db_client
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -21,10 +24,13 @@ CHANGE_THRESHOLD_PERCENT = int(os.getenv("CHANGE_THRESHOLD_PERCENT", "20"))
|
||||
|
||||
|
||||
def run_scheduled_analysis() -> None:
|
||||
"""Re-analyze all tracked companies and check for significant changes."""
|
||||
db = DatabaseClient(config.database_url)
|
||||
db.connect()
|
||||
db.initialize_schema()
|
||||
"""Re-analyze all tracked companies and check for significant changes.
|
||||
|
||||
Uses the shared pooled DatabaseClient from ``SPARC.auth.get_db_client()``
|
||||
rather than creating a disposable connection, so the scheduler participates
|
||||
in the same connection pool as the rest of the application.
|
||||
"""
|
||||
db = get_db_client()
|
||||
|
||||
tracked = db.list_tracked_companies()
|
||||
if not tracked:
|
||||
@@ -74,7 +80,6 @@ def run_scheduled_analysis() -> None:
|
||||
except Exception as e:
|
||||
logger.error("Error analyzing tracked company %s: %s", name, e)
|
||||
|
||||
db.close()
|
||||
logger.info("Scheduled analysis complete")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user