コード例 #1
0
ファイル: settings.py プロジェクト: samuelcolvin/foxglove
    def parse_redis_settings(cls, v):
        if v is None:
            return

        if RedisSettings.__module__ != 'arq.connections':
            raise RuntimeError(f'arq must be installed to use redis, redis_settings set to {v!r}')
        return RedisSettings.from_dsn(v)
コード例 #2
0
    def __init__(self):
        Borg.__init__(self)

        database_user = get_docker_secret("seraphsix_pg_db_user",
                                          default="seraphsix")
        database_password = get_docker_secret("seraphsix_pg_db_pass")
        database_host = get_docker_secret("seraphsix_pg_db_host",
                                          default="localhost")
        database_port = get_docker_secret("seraphsix_pg_db_port",
                                          default="5432")
        database_name = get_docker_secret("seraphsix_pg_db_name",
                                          default="seraphsix")
        self.database_conns = get_docker_secret("seraphsix_pg_db_conns",
                                                default=DB_MAX_CONNECTIONS,
                                                cast_to=int)

        database_auth = f"{database_user}:{database_password}"
        self.database_url = f"postgres://{database_auth}@{database_host}:{database_port}/{database_name}"

        redis_password = get_docker_secret("seraphsix_redis_pass")
        redis_host = get_docker_secret("seraphsix_redis_host",
                                       default="localhost")
        redis_port = get_docker_secret("seraphsix_redis_port", default="6379")
        self.redis_url = f"redis://:{redis_password}@{redis_host}:{redis_port}"

        self.arq_redis = RedisSettings.from_dsn(f"{self.redis_url}/1")

        self.destiny = DestinyConfig()
        self.the100 = The100Config()
        self.twitter = TwitterConfig()
        self.discord_api_key = get_docker_secret("discord_api_key")
        self.home_server = get_docker_secret("home_server", cast_to=int)
        self.log_channel = get_docker_secret("home_server_log_channel",
                                             cast_to=int)
        self.reg_channel = get_docker_secret("home_server_reg_channel",
                                             cast_to=int)
        self.enable_activity_tracking = get_docker_secret(
            "enable_activity_tracking", cast_to=bool)

        self.flask_app_key = (os.environb[b"FLASK_APP_KEY"].decode(
            "unicode-escape").encode("latin-1"))

        self.activity_cutoff = get_docker_secret("activity_cutoff")
        if self.activity_cutoff:
            self.activity_cutoff = datetime.strptime(
                self.activity_cutoff, "%Y-%m-%d").astimezone(tz=pytz.utc)

        self.root_log_level = get_docker_secret("root_log_level",
                                                default=ROOT_LOG_LEVEL,
                                                cast_to=str)

        bucket_kwargs = {
            "redis_pool": ConnectionPool.from_url(self.redis_url),
            "bucket_name": "ratelimit",
        }
        destiny_api_rate = RequestRate(20, Duration.SECOND)
        self.destiny_api_limiter = Limiter(destiny_api_rate,
                                           bucket_class=RedisBucket,
                                           bucket_kwargs=bucket_kwargs)
コード例 #3
0
ファイル: worker.py プロジェクト: lqmanh/fastapi-app
class WorkerSettings:
    cron_jobs = []
    functions = []
    job_timeout = 10  # seconds
    max_jobs = 10
    max_tries = 2
    on_shutdown = shutdown
    on_startup = startup
    poll_delay = 1  # second
    redis_settings = RedisSettings.from_dsn(settings.redis_dsn)
コード例 #4
0
ファイル: config.py プロジェクト: Tattoowean/SeraphSix
    def __init__(self):
        Borg.__init__(self)

        database_user = get_docker_secret('seraphsix_pg_db_user', default='seraphsix')
        database_password = get_docker_secret('seraphsix_pg_db_pass')
        database_host = get_docker_secret('seraphsix_pg_db_host', default='localhost')
        database_port = get_docker_secret('seraphsix_pg_db_port', default='5432')
        database_name = get_docker_secret('seraphsix_pg_db_name', default='seraphsix')
        self.database_conns = get_docker_secret('seraphsix_pg_db_conns', default=DB_MAX_CONNECTIONS, cast_to=int)

        database_auth = f"{database_user}:{database_password}"
        self.database_url = f"postgres://{database_auth}@{database_host}:{database_port}/{database_name}"

        redis_password = get_docker_secret('seraphsix_redis_pass')
        redis_host = get_docker_secret('seraphsix_redis_host', default='localhost')
        redis_port = get_docker_secret('seraphsix_redis_port', default='6379')
        self.redis_url = f"redis://:{redis_password}@{redis_host}:{redis_port}"

        self.arq_redis = RedisSettings.from_dsn(f'{self.redis_url}/1')

        self.destiny = DestinyConfig()
        self.the100 = The100Config()
        self.twitter = TwitterConfig()
        self.discord_api_key = get_docker_secret('discord_api_key')
        self.home_server = get_docker_secret('home_server', cast_to=int)
        self.log_channel = get_docker_secret('home_server_log_channel', cast_to=int)
        self.reg_channel = get_docker_secret('home_server_reg_channel', cast_to=int)
        self.enable_activity_tracking = get_docker_secret('enable_activity_tracking', cast_to=bool)

        self.flask_app_key = os.environb[b'FLASK_APP_KEY'].decode('unicode-escape').encode('latin-1')

        self.activity_cutoff = get_docker_secret('activity_cutoff')
        if self.activity_cutoff:
            self.activity_cutoff = datetime.strptime(self.activity_cutoff, '%Y-%m-%d').astimezone(tz=pytz.utc)

        self.root_log_level = get_docker_secret('root_log_level', default=ROOT_LOG_LEVEL, cast_to=str)

        bucket_kwargs = {
            "redis_pool": ConnectionPool.from_url(self.redis_url),
            "bucket_name": "ratelimit"
        }
        destiny_api_rate = RequestRate(20, Duration.SECOND)
        self.destiny_api_limiter = Limiter(destiny_api_rate, bucket_class=RedisBucket, bucket_kwargs=bucket_kwargs)
コード例 #5
0
ファイル: arq_deps.py プロジェクト: lqmanh/fastapi-app
async def get_redis() -> ArqRedis:
    redis_settings = RedisSettings.from_dsn(settings.redis_dsn)
    redis = await create_pool(redis_settings)
    return redis
コード例 #6
0
 def parse_redis_settings(cls, v):
     if isinstance(v, str):
         return RedisSettings.from_dsn(v)
     else:
         return v