diff --git a/mayordomo/__init__.py b/mayordomo/__init__.py index fd51acf..2dd433b 100644 --- a/mayordomo/__init__.py +++ b/mayordomo/__init__.py @@ -190,25 +190,21 @@ async def cleanupSent(): returnvalue = True oneMonth = datetime.now() - timedelta(days = 60) - try: - dest = await db.execute(select(Destinatario).where(Destinatario.timestamp0).limit(1)) + dest = await db.execute(select(Destinatario).where(Destinatario.timestamp0).limit(1)) - for destinatario in dest.scalars(): - await log.debug('Deleting Dest: {}'.format(destinatario.id)) - cartaid = destinatario.cartaid - await db.execute(delete(Destinatario).where(Destinatario.id==destinatario.id)) + for destinatario in dest.scalars(): + await log.debug('Deleting Dest: {}'.format(destinatario.id)) + cartaid = destinatario.cartaid + await db.execute(delete(Destinatario).where(Destinatario.id==destinatario.id)) + await db.commit() + result = await db.execute(select(Destinatario).where(Destinatario.cartaid==cartaid).limit(1)) + more = result.scalar_one_or_none() + if more is None: + await log.info('Deleting Carta: {}'.format(cartaid)) + await db.execute(delete(Carta).where(Carta.id==cartaid)) await db.commit() - result = await db.execute(select(Destinatario).where(Destinatario.cartaid==cartaid).limit(1)) - more = result.scalar_one_or_none() - if more is None: - await log.info('Deleting Carta: {}'.format(cartaid)) - await db.execute(delete(Carta).where(Carta.id==cartaid)) - await db.commit() - returnvalue = False + returnvalue = False - except: - await log.error('Traceback {}'.format(traceback.format_exc())) - raise('Error al leer correos pendientes. Reiniciando servicio.') return returnvalue