Supported MySQL Changes Listening
This commit is contained in:
@@ -1,14 +1,42 @@
|
||||
# add_user.py
|
||||
|
||||
import asyncio, logging
|
||||
import asyncio, logging, pymysql
|
||||
import secrets
|
||||
from sqlalchemy.future import select
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
from getpass import getpass
|
||||
from data.db import engine, SessionLocal
|
||||
from data.models import Base, User, UserRole
|
||||
|
||||
|
||||
async def startup():
|
||||
from dbs import mysql
|
||||
from app.operations import feed_databases_changes_ws
|
||||
await pools_creator()
|
||||
await mysql_streams_listeners_creator()
|
||||
mysql.cached_cursors_cleaner_task = asyncio.create_task(mysql.cached_cursors_cleaner())
|
||||
|
||||
|
||||
async def shutdown():
|
||||
from dbs import mysql
|
||||
mysql.cached_cursors_cleaner_task.cancel()
|
||||
try:
|
||||
await mysql.cached_cursors_cleaner_task
|
||||
except asyncio.CancelledError:
|
||||
print('Closed cached_cursors_cleaner_task')
|
||||
await cursors_closer()
|
||||
await pools_destroy()
|
||||
|
||||
from utils.binlog import destroy
|
||||
destroy()
|
||||
|
||||
|
||||
async def mysql_streams_listeners_creator():
|
||||
from data.crud import read_all_connections
|
||||
async with SessionLocal() as db:
|
||||
connections = await read_all_connections(db=db)
|
||||
|
||||
from utils.binlog import start_listeners
|
||||
start_listeners(connections=connections)
|
||||
|
||||
async def pools_creator():
|
||||
from data.crud import read_all_connections
|
||||
from dbs import mysql
|
||||
@@ -17,7 +45,11 @@ async def pools_creator():
|
||||
connections = await read_all_connections(db=db)
|
||||
|
||||
for connection in connections:
|
||||
mysql.pools[connection.id] = await mysql.pool_creator(connection=connection)
|
||||
try:
|
||||
mysql.pools[connection.id] = await mysql.pool_creator(connection=connection)
|
||||
except pymysql.err.OperationalError as e:
|
||||
print(e)
|
||||
|
||||
logging.info(msg='Created Pools')
|
||||
|
||||
async def cursors_closer():
|
||||
|
||||
Reference in New Issue
Block a user