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

View File

@@ -1,17 +1,20 @@
from __future__ import annotations
import json
import os
import sqlite3
import threading
from datetime import datetime, timedelta, timezone
from typing import Optional
from app.config import settings
from app.models.event import EventStatus, EventType, OutboundEvent
class EventStore:
def __init__(self, db_path: str):
self.db_path = db_path
os.makedirs(os.path.dirname(os.path.abspath(db_path)), exist_ok=True)
self._local = threading.local()
self._init_db()
@@ -136,3 +139,6 @@ class EventStore:
(threshold,),
)
return cursor.rowcount
event_store = EventStore(settings.event_store_path)