feat(config): add event publisher settings
This commit is contained in:
@@ -12,5 +12,11 @@ class Settings(BaseSettings):
|
|||||||
heartbeat_interval_seconds: int = int(os.getenv("HEARTBEAT_INTERVAL_SECONDS", "30"))
|
heartbeat_interval_seconds: int = int(os.getenv("HEARTBEAT_INTERVAL_SECONDS", "30"))
|
||||||
pywechat_mock_mode: bool = os.getenv("PYWECHAT_MOCK_MODE", "true").lower() == "true"
|
pywechat_mock_mode: bool = os.getenv("PYWECHAT_MOCK_MODE", "true").lower() == "true"
|
||||||
|
|
||||||
|
event_store_path: str = os.getenv("EVENT_STORE_PATH", "./data/events.db")
|
||||||
|
max_retry: int = int(os.getenv("MAX_RETRY", "5"))
|
||||||
|
base_retry_delay_seconds: int = int(os.getenv("BASE_RETRY_DELAY_SECONDS", "5"))
|
||||||
|
event_retention_days: int = int(os.getenv("EVENT_RETENTION_DAYS", "10"))
|
||||||
|
event_publish_interval_seconds: float = float(os.getenv("EVENT_PUBLISH_INTERVAL_SECONDS", "5"))
|
||||||
|
|
||||||
|
|
||||||
settings = Settings()
|
settings = Settings()
|
||||||
|
|||||||
@@ -1,17 +1,20 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
import os
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import threading
|
import threading
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from app.config import settings
|
||||||
from app.models.event import EventStatus, EventType, OutboundEvent
|
from app.models.event import EventStatus, EventType, OutboundEvent
|
||||||
|
|
||||||
|
|
||||||
class EventStore:
|
class EventStore:
|
||||||
def __init__(self, db_path: str):
|
def __init__(self, db_path: str):
|
||||||
self.db_path = db_path
|
self.db_path = db_path
|
||||||
|
os.makedirs(os.path.dirname(os.path.abspath(db_path)), exist_ok=True)
|
||||||
self._local = threading.local()
|
self._local = threading.local()
|
||||||
self._init_db()
|
self._init_db()
|
||||||
|
|
||||||
@@ -136,3 +139,6 @@ class EventStore:
|
|||||||
(threshold,),
|
(threshold,),
|
||||||
)
|
)
|
||||||
return cursor.rowcount
|
return cursor.rowcount
|
||||||
|
|
||||||
|
|
||||||
|
event_store = EventStore(settings.event_store_path)
|
||||||
|
|||||||
Reference in New Issue
Block a user