settings.py 2.9 KB
Newer Older
P
peng.xu 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
import sys
import os

from environs import Env
env = Env()

FROM_EXAMPLE = env.bool('FROM_EXAMPLE', False)
if FROM_EXAMPLE:
    from dotenv import load_dotenv
    load_dotenv('./mishards/.env.example')
else:
    env.read_env()

P
peng.xu 已提交
14

B
BossZou 已提交
15
SERVER_VERSIONS = ['0.9.0', '0.9.1']
P
peng.xu 已提交
16
DEBUG = env.bool('DEBUG', False)
17
MAX_RETRY = env.int('MAX_RETRY', 3)
P
peng.xu 已提交
18 19 20 21 22 23 24 25 26 27 28 29

LOG_LEVEL = env.str('LOG_LEVEL', 'DEBUG' if DEBUG else 'INFO')
LOG_PATH = env.str('LOG_PATH', '/tmp/mishards')
LOG_NAME = env.str('LOG_NAME', 'logfile')
TIMEZONE = env.str('TIMEZONE', 'UTC')

from utils.logger_helper import config
config(LOG_LEVEL, LOG_PATH, LOG_NAME, TIMEZONE)

SERVER_PORT = env.int('SERVER_PORT', 19530)
SERVER_TEST_PORT = env.int('SERVER_TEST_PORT', 19530)
WOSERVER = env.str('WOSERVER')
30
MAX_WORKERS = env.int('MAX_WORKERS', 50)
P
peng.xu 已提交
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58


class TracingConfig:
    TRACING_SERVICE_NAME = env.str('TRACING_SERVICE_NAME', 'mishards')
    TRACING_VALIDATE = env.bool('TRACING_VALIDATE', True)
    TRACING_LOG_PAYLOAD = env.bool('TRACING_LOG_PAYLOAD', False)
    TRACING_CONFIG = {
        'sampler': {
            'type': env.str('TRACING_SAMPLER_TYPE', 'const'),
            'param': env.str('TRACING_SAMPLER_PARAM', "1"),
        },
        'local_agent': {
            'reporting_host': env.str('TRACING_REPORTING_HOST', '127.0.0.1'),
            'reporting_port': env.str('TRACING_REPORTING_PORT', '5775')
        },
        'logging': env.bool('TRACING_LOGGING', True)
    }
    DEFAULT_TRACING_CONFIG = {
        'sampler': {
            'type': env.str('TRACING_SAMPLER_TYPE', 'const'),
            'param': env.str('TRACING_SAMPLER_PARAM', "0"),
        }
    }


class DefaultConfig:
    SQLALCHEMY_DATABASE_URI = env.str('SQLALCHEMY_DATABASE_URI')
    SQL_ECHO = env.bool('SQL_ECHO', False)
赖龙 已提交
59 60 61 62 63
    SQL_POOL_SIZE = env.int('pool_size', 100)
    SQL_POOL_RECYCLE = env.int('pool_recycle', 5)
    SQL_POOL_TIMEOUT = env.int('pool_timeout', 30)
    SQL_POOL_PRE_PING = env.bool('pool_pre_ping', True)
    SQL_MAX_OVERFLOW = env.int('max_overflow', 0)
P
peng.xu 已提交
64 65
    TRACER_PLUGIN_PATH = env.str('TRACER_PLUGIN_PATH', '')
    TRACER_CLASS_NAME = env.str('TRACER_CLASS_NAME', '')
P
peng.xu 已提交
66
    ROUTER_PLUGIN_PATH = env.str('ROUTER_PLUGIN_PATH', '')
P
peng.xu 已提交
67
    ROUTER_CLASS_NAME = env.str('ROUTER_CLASS_NAME', 'FileBasedHashRingRouter')
P
peng.xu 已提交
68 69
    DISCOVERY_PLUGIN_PATH = env.str('DISCOVERY_PLUGIN_PATH', '')
    DISCOVERY_CLASS_NAME = env.str('DISCOVERY_CLASS_NAME', 'static')
P
peng.xu 已提交
70 71 72 73 74


class TestingConfig(DefaultConfig):
    SQLALCHEMY_DATABASE_URI = env.str('SQLALCHEMY_DATABASE_TEST_URI', '')
    SQL_ECHO = env.bool('SQL_TEST_ECHO', False)
赖龙 已提交
75 76 77 78 79
    SQL_POOL_SIZE = env.int('pool_size', 100)
    SQL_POOL_RECYCLE = env.int('pool_recycle', 5)
    SQL_POOL_TIMEOUT = env.int('pool_timeout', 30)
    SQL_POOL_PRE_PING = env.bool('pool_pre_ping', True)
    SQL_MAX_OVERFLOW = env.int('max_overflow', 0)
P
peng.xu 已提交
80
    TRACER_CLASS_NAME = env.str('TRACER_CLASS_TEST_NAME', '')
P
peng.xu 已提交
81
    ROUTER_CLASS_NAME = env.str('ROUTER_CLASS_TEST_NAME', 'FileBasedHashRingRouter')