create a permanent pool instead of 1 per use
This commit is contained in:
parent
1ed86e035b
commit
5b1cae1567
|
@ -92,9 +92,7 @@ class CallDispatcher:
|
||||||
if function_obj['database'] and hasattr(old_risotto_context, 'connection'):
|
if function_obj['database'] and hasattr(old_risotto_context, 'connection'):
|
||||||
risotto_context.connection = old_risotto_context.connection
|
risotto_context.connection = old_risotto_context.connection
|
||||||
if function_obj['database'] and not hasattr(risotto_context, 'connection'):
|
if function_obj['database'] and not hasattr(risotto_context, 'connection'):
|
||||||
db_conf = get_config().get('database')
|
async with self.pool.acquire() as connection:
|
||||||
pool = await asyncpg.create_pool(database=db_conf.get('dbname'), user=db_conf.get('user'))
|
|
||||||
async with pool.acquire() as connection:
|
|
||||||
await connection.set_type_codec(
|
await connection.set_type_codec(
|
||||||
'json',
|
'json',
|
||||||
encoder=dumps,
|
encoder=dumps,
|
||||||
|
@ -181,9 +179,7 @@ class PublishDispatcher:
|
||||||
if function_obj['database'] and hasattr(old_risotto_context, 'connection'):
|
if function_obj['database'] and hasattr(old_risotto_context, 'connection'):
|
||||||
risotto_context.connection = old_risotto_context.connection
|
risotto_context.connection = old_risotto_context.connection
|
||||||
if function_obj['database'] and not hasattr(risotto_context, 'connection'):
|
if function_obj['database'] and not hasattr(risotto_context, 'connection'):
|
||||||
db_conf = get_config().get('database')
|
async with self.pool.acquire() as connection:
|
||||||
pool = await asyncpg.create_pool(database=db_conf.get('dbname'), user=db_conf.get('user'))
|
|
||||||
async with pool.acquire() as connection:
|
|
||||||
await connection.set_type_codec(
|
await connection.set_type_codec(
|
||||||
'json',
|
'json',
|
||||||
encoder=dumps,
|
encoder=dumps,
|
||||||
|
@ -283,9 +279,7 @@ class Dispatcher(register.RegisterDispatcher, CallDispatcher, PublishDispatcher)
|
||||||
config: Config,
|
config: Config,
|
||||||
user_login: str,
|
user_login: str,
|
||||||
uri: str) -> None:
|
uri: str) -> None:
|
||||||
db_conf = get_config().get('database')
|
async with self.pool.acquire() as connection:
|
||||||
pool = await asyncpg.create_pool(database=db_conf.get('dbname'), user=db_conf.get('user'))
|
|
||||||
async with pool.acquire() as connection:
|
|
||||||
async with connection.transaction():
|
async with connection.transaction():
|
||||||
# Verify if user exists and get ID
|
# Verify if user exists and get ID
|
||||||
sql = '''
|
sql = '''
|
||||||
|
|
|
@ -33,6 +33,8 @@ class RegisterDispatcher:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# reference to instanciate module (to inject self in method): {"module_name": instance_of_module}
|
# reference to instanciate module (to inject self in method): {"module_name": instance_of_module}
|
||||||
self.injected_self = {}
|
self.injected_self = {}
|
||||||
|
# postgresql pool
|
||||||
|
self.pool = None
|
||||||
# list of uris with informations: {"v1": {"module_name.xxxxx": yyyyyy}}
|
# list of uris with informations: {"v1": {"module_name.xxxxx": yyyyyy}}
|
||||||
self.messages = {}
|
self.messages = {}
|
||||||
# load tiramisu objects
|
# load tiramisu objects
|
||||||
|
@ -261,8 +263,8 @@ class RegisterDispatcher:
|
||||||
async def load(self):
|
async def load(self):
|
||||||
# valid function's arguments
|
# valid function's arguments
|
||||||
db_conf = get_config().get('database')
|
db_conf = get_config().get('database')
|
||||||
pool = await asyncpg.create_pool(database=db_conf.get('dbname'), user=db_conf.get('user'))
|
self.pool = await asyncpg.create_pool(database=db_conf.get('dbname'), user=db_conf.get('user'))
|
||||||
async with pool.acquire() as connection:
|
async with self.pool.acquire() as connection:
|
||||||
async with connection.transaction():
|
async with connection.transaction():
|
||||||
for version, messages in self.messages.items():
|
for version, messages in self.messages.items():
|
||||||
for message, message_infos in messages.items():
|
for message, message_infos in messages.items():
|
||||||
|
|
Loading…
Reference in New Issue