Removes certain sqlite-specific functions from application

This commit is contained in:
Oleg Silkin 2020-03-30 22:00:10 -04:00
parent dba14460cc
commit e0b6d16c89

View file

@ -10,7 +10,7 @@ import aiojobs.aiohttp
from aiohttp import web from aiohttp import web
from src.database.queries import obtain_connection, DatabaseWriter from src.database.queries import obtain_connection, DatabaseWriter
from src.database.queries import setup_database, backup_database from src.database.queries import setup_database
from src.server.handles import api_endpoint, get_api_endpoint from src.server.handles import api_endpoint, get_api_endpoint
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -24,21 +24,9 @@ async def setup_db_schema(app):
logger.info(f'Database already exists in {app["db_path"]}, skipping setup') logger.info(f'Database already exists in {app["db_path"]}, skipping setup')
async def database_backup_routine(app):
try:
while True:
await asyncio.sleep(app['config']['backup_int'])
with app['reader'] as conn:
logger.debug('backing up database')
backup_database(conn, app['backup'])
except asyncio.CancelledError:
pass
async def start_background_tasks(app): async def start_background_tasks(app):
# Reading the DB # Reading the DB
app['reader'] = obtain_connection(app['db_path'], True) app['reader'] = obtain_connection(app['db_path'], True)
app['waitful_backup'] = asyncio.create_task(database_backup_routine(app))
# Scheduler to prevent multiple threads from writing to DB simulataneously # Scheduler to prevent multiple threads from writing to DB simulataneously
app['comment_scheduler'] = await aiojobs.create_scheduler(limit=1, pending_limit=0) app['comment_scheduler'] = await aiojobs.create_scheduler(limit=1, pending_limit=0)
@ -50,9 +38,6 @@ async def start_background_tasks(app):
async def close_database_connections(app): async def close_database_connections(app):
logger.info('Ending background backup loop')
app['waitful_backup'].cancel()
await app['waitful_backup']
app['reader'].close() app['reader'].close()
app['writer'].close() app['writer'].close()
app['db_writer'].cleanup() app['db_writer'].cleanup()
@ -67,7 +52,7 @@ async def close_schedulers(app):
class CommentDaemon: class CommentDaemon:
def __init__(self, config, db_file=None, backup=None, **kwargs): def __init__(self, config, db_file=None, **kwargs):
app = web.Application() app = web.Application()
# configure the config # configure the config
@ -76,8 +61,6 @@ class CommentDaemon:
# configure the db file # configure the db file
app['db_path'] = db_file or config.get('db_path') app['db_path'] = db_file or config.get('db_path')
if app['db_path']:
app['backup'] = backup or '.'.join((app['db_path'], 'backup'))
# configure the order of tasks to run during app lifetime # configure the order of tasks to run during app lifetime
app.on_startup.append(setup_db_schema) app.on_startup.append(setup_db_schema)