1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import rq
- from redis import Redis
- class Connection:
- def __init__(self, config):
- # redis配置信息
- self.redis_host = config.redis.HOST
- self.redis_port = config.redis.PORT
- self.redis_db = config.redis.DB
- # db配置信息
- self.db_host = config.database.HOST
- self.db_port = config.database.PORT
- self.db_user = config.database.USER
- self.db_pwd = config.database.PASSWORD
- self.db_db = config.database.DB
- def __call__(self, *args, **kwargs):
- redis = Redis \
- (
- host=self.redis_host,
- port=self.redis_port,
- db=self.redis_db
- )
- return rq.Connection(redis)
- @staticmethod
- def current():
- kwargs = rq.get_current_connection().get_connection_kwargs()
- kwargs["database"] = kwargs["db"]
- return Connection(**kwargs)
- @property
- def redis_uri(self):
- """获取redis的uri"""
- return 'redis://{}:{}/{}'.format(self.redis_host, self.redis_port, self.redis_db)
- @property
- def redis_conn(self):
- """获取redis的conn"""
- return Redis(host=self.redis_host, port=self.redis_port, db=self.redis_db, health_check_interval=30)
- @property
- def db_uri(self):
- """获取postgressql的uri"""
- return "postgresql+psycopg2://{user}:{pwd}@{host}:{port}/{db}".format(user=self.db_user,
- pwd=self.db_pwd,
- host=self.db_host,
- port=self.db_port,
- db=self.db_db)
|