feat(config): add event publisher settings

This commit is contained in:
2026-07-10 12:08:40 +08:00
parent 0e6f7a3072
commit 0cf57bfaca
2 changed files with 12 additions and 0 deletions

View File

@@ -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()

View File

@@ -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)