Files
@ b61824e61e68
Branch filter:
Location: kallithea/rhodecode/model/meta.py - annotation
b61824e61e68
764 B
text/x-python
Don't cache dulwich Repos, in pararell multithreaded evniroment dulwich pack file openers
can break badly. We need to create Repo() objects always for each call, even when it's
taken from cache.
Fixed issue with dulwich filedescriptor leak ref #573
can break badly. We need to create Repo() objects always for each call, even when it's
taken from cache.
Fixed issue with dulwich filedescriptor leak ref #573
1e757ac98988 1e757ac98988 2029c17cc6c6 5d676b6ab71c 5d676b6ab71c f522f4d3bf93 5d676b6ab71c 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 6c86c987cf93 6c86c987cf93 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 2029c17cc6c6 1e757ac98988 1e757ac98988 1e757ac98988 | """SQLAlchemy Metadata and Session object"""
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker
from beaker import cache
from rhodecode.lib import caching_query
# Beaker CacheManager. A home base for cache configurations.
cache_manager = cache.CacheManager()
__all__ = ['Base', 'Session']
#
# SQLAlchemy session manager. Updated by model.init_model()
#
Session = scoped_session(
sessionmaker(
query_cls=caching_query.query_callable(cache_manager),
expire_on_commit=True,
)
)
# The declarative Base
Base = declarative_base()
#to use cache use this in query
#.options(FromCache("sqlalchemy_cache_type", "cachekey"))
|