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)
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)
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)
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)
async def get_redis() -> ArqRedis: redis_settings = RedisSettings.from_dsn(settings.redis_dsn) redis = await create_pool(redis_settings) return redis
def parse_redis_settings(cls, v): if isinstance(v, str): return RedisSettings.from_dsn(v) else: return v