123 lines
5.5 KiB
Python
123 lines
5.5 KiB
Python
"""
|
|
Сводка по Redis: префиксы ключей и окна жизни (TTL).
|
|
|
|
Ключ/префикс │ TTL (сек) │ Назначение
|
|
──────────────────────────┼───────────┼────────────────────────────────────────
|
|
throttle_counter │ 1 │ Счётчик троттлинга (окно сброса)
|
|
throttle_notice │ 1 │ Показ уведомления «подождите»
|
|
concurrency_notice │ 5 │ Сообщение «слишком много запросов»
|
|
utm_exists │ 300 │ UTM-код уже обработан (старт)
|
|
user_middleware │ 60 │ Снапшот пользователя (debounce*2)
|
|
user_snapshot │ 30 │ Снапшот пользователя
|
|
user_exists │ 60 │ Пользователь есть в БД
|
|
balance │ 25 │ Баланс в профиле
|
|
profile_data │ 25 │ Данные профиля
|
|
key_count │ 25 │ Количество ключей
|
|
ban_status │ 60 │ Статус бана
|
|
direct_start_user_exists │ 20 │ Пользователь есть (direct start blocker)
|
|
admin_access │ 60 │ Доступ в админку (да/нет)
|
|
remna_server │ 300 │ URL сервера Remnawave
|
|
remna_profile │ 20/45 │ Профиль Remnawave (45 при ошибке)
|
|
runtime_configs │ 86400 │ Рантайм-конфиг (1 сутки)
|
|
sub_response │ 20 │ Ответ подписки (subscription)
|
|
servers │ 60 │ Список серверов
|
|
tariff │ 120 │ Тариф по ID
|
|
tariffs_cluster │ 120 │ Тарифы по кластеру
|
|
keys_list │ 25 │ Список ключей
|
|
key_details │ 45 │ Детали ключа
|
|
key_email │ 45 │ email по client_id
|
|
payment_pending │ 3600 │ Ожидающий платёж (1 ч)
|
|
audit_history │ 300 │ История действий клиента (админка)
|
|
audit:flush │ — │ Буфер аудита (список для выгрузки в БД в 00:00)
|
|
audit:flush:processing │ — │ Батч аудита, перенесённый в processing до commit в БД
|
|
audit:flush:drain_lock │ 900 │ Лок nightly/manual drain аудита
|
|
audit:user:tg:* │ 25 ч │ События по tg_id для чтения до выгрузки
|
|
audit:user:identity:* │ 25 ч │ События по identity для чтения до выгрузки
|
|
webhook_abuse_fail │ 60 │ Счётчик неудачных вебхуков по IP
|
|
webhook_abuse_block │ 300 │ Блокировка IP по злоупотреблению
|
|
|
|
При недоступности Redis: повторная попытка подключения через 5 сек
|
|
(REDIS_BACKOFF_SEC в redis_cache).
|
|
"""
|
|
UPDATE_STALE_AGE_SEC = 60
|
|
|
|
CONCURRENCY_MAX_WAIT_SEC = 300
|
|
CONCURRENCY_LIMIT = 200
|
|
|
|
SUBSCRIPTION_CACHE_SUBSCRIBED_MAXSIZE = 200_000
|
|
SUBSCRIPTION_CACHE_SUBSCRIBED_TTL_SEC = 600
|
|
SUBSCRIPTION_CACHE_UNSUBSCRIBED_MAXSIZE = 100_000
|
|
SUBSCRIPTION_CACHE_UNSUBSCRIBED_TTL_SEC = 60
|
|
SUBSCRIPTION_GET_CHAT_MEMBER_TIMEOUT_SEC = 4.0
|
|
|
|
CONCURRENCY_REJECT_NOTICE_CACHE_MAXSIZE = 100_000
|
|
CONCURRENCY_REJECT_NOTICE_TTL_SEC = 5
|
|
|
|
THROTTLE_CACHE_MAXSIZE = 50_000
|
|
THROTTLE_CACHE_TTL_SEC = 1.0
|
|
THROTTLE_NOTICE_CACHE_MAXSIZE = 50_000
|
|
THROTTLE_NOTICE_TTL_SEC = 1.0
|
|
|
|
START_UTM_EXISTS_CACHE_MAXSIZE = 20_000
|
|
START_UTM_EXISTS_TTL_SEC = 300
|
|
|
|
USER_SNAPSHOT_CACHE_MAXSIZE = 150_000
|
|
USER_SNAPSHOT_CACHE_TTL_SEC = 30
|
|
USER_EXISTS_CACHE_MAXSIZE = 150_000
|
|
USER_EXISTS_CACHE_TTL_SEC = 60
|
|
|
|
BAN_CACHE_MAXSIZE = 50_000
|
|
BAN_CACHE_TTL_SEC = 60
|
|
|
|
DIRECT_START_USER_EXISTS_CACHE_MAXSIZE = 50_000
|
|
DIRECT_START_USER_EXISTS_CACHE_TTL_SEC = 20
|
|
|
|
ADMIN_CACHE_MAXSIZE = 10_000
|
|
ADMIN_CACHE_TTL_SEC = 60
|
|
|
|
REMNAWAVE_SERVER_CACHE_MAXSIZE = 50_000
|
|
REMNAWAVE_SERVER_CACHE_TTL_SEC = 300
|
|
REMNAWAVE_PROFILE_CACHE_MAXSIZE = 200_000
|
|
REMNAWAVE_PROFILE_CACHE_TTL_SEC = 20
|
|
REMNAWAVE_PROFILE_TIMEOUT_SEC = 10.0
|
|
REMNAWAVE_PROFILE_ERROR_CACHE_TTL_SEC = 45
|
|
REMNAWAVE_ACTION_TIMEOUT_SEC = 5.0
|
|
REMNAWAVE_MAX_CONCURRENCY = 20
|
|
|
|
RUNTIME_CONFIG_SYNC_PULL_INTERVAL_SEC = 1.0
|
|
RUNTIME_CONFIG_SYNC_TTL_SEC = 86_400
|
|
|
|
SUBSCRIPTION_RESPONSE_CACHE_TTL_SEC = 20
|
|
SUBSCRIPTION_HANDLER_CONCURRENCY = 80
|
|
|
|
SERVERS_CACHE_TTL_SEC = 60
|
|
TARIFF_BY_ID_CACHE_TTL_SEC = 120
|
|
TARIFFS_FOR_CLUSTER_CACHE_TTL_SEC = 120
|
|
|
|
KEY_DETAILS_CACHE_TTL_SEC = 45
|
|
KEYS_LIST_CACHE_TTL_SEC = 25
|
|
KEY_COUNT_CACHE_TTL_SEC = 25
|
|
|
|
BALANCE_CACHE_TTL_SEC = 25
|
|
PROFILE_DATA_CACHE_TTL_SEC = 25
|
|
|
|
PAYMENT_PENDING_CACHE_TTL_SEC = 3600
|
|
|
|
|
|
AUDIT_HISTORY_CACHE_TTL_SEC = 300
|
|
|
|
AUDIT_REDIS_BUFFER_ENABLED = True
|
|
AUDIT_REDIS_FLUSH_KEY = "audit:flush"
|
|
AUDIT_REDIS_USER_PREFIX = "audit:user:tg:"
|
|
AUDIT_REDIS_IDENTITY_PREFIX = "audit:user:identity:"
|
|
AUDIT_REDIS_USER_TTL_SEC = 25 * 3600
|
|
AUDIT_REDIS_DRAIN_BATCH = 1000
|
|
|
|
ERROR_THROTTLE_WINDOW_SEC = 60
|
|
ERROR_THROTTLE_MAX_KEYS = 500
|
|
ERROR_THROTTLE_MESSAGE_MAX_LEN = 120
|
|
|
|
WEBHOOK_ABUSE_FAIL_THRESHOLD = 10
|
|
WEBHOOK_ABUSE_FAIL_WINDOW_SEC = 60
|
|
WEBHOOK_ABUSE_BLOCK_TTL_SEC = 300
|