Cleanup Routine

master
ifiguero 2022-07-16 15:41:13 -04:00
parent 828606584a
commit b1e0fb23dc
2 changed files with 26 additions and 3 deletions

View File

@ -174,7 +174,7 @@ async def enviaCorreos():
try:
rdestino = await db.execute(select(Destinatario).join(Direccion).join(FQDN).where(Destinatario.enviado==0).distinct(FQDN.id))
tareas = []
for destinatario in rdestino.scalars():
result = await db.execute(select(Direccion).where(Direccion.id==destinatario.direccionid))
dbemail = result.scalar_one_or_none()
@ -183,6 +183,27 @@ async def enviaCorreos():
except:
await log.error('Traceback {}'.format(traceback.format_exc()))
async def cleanupSent():
from datetime import datetime, timedelta
returnvalue = True
oneMonth = datetime.now() - timedelta(days = 60)
try:
dest = await db.execute(select(Destinatario).where(Destinatario.timestamp<oneMonth, Destinatario.enviado>0).limit(1))
for destinatario in dest.scalars():
cartaid = destinatario.cartaid
await db.execute(delete(Destinatario).where(Destinatario.id==destinatario.id))
result = await db.execute(select(Destinatario).where(Destinatario.cartaid==cartaid))
more = result.scalar_one_or_none()
if more is None:
await db.execute(delete(Carta).where(Carta.id==cartaid))
returnvalue = False
except:
await log.error('Traceback {}'.format(traceback.format_exc()))
return returnvalue
def create_async_smtp_server():
handler = ilabHandler()

View File

@ -1,4 +1,4 @@
from mayordomo import log, pre_process, enviaCorreos
from mayordomo import log, pre_process, enviaCorreos, cleanupSent
import os
import daemon
import time
@ -19,7 +19,9 @@ def main():
while shouldIrun:
if await pre_process():
await enviaCorreos()
await asyncio.sleep(10)
elif await cleanupSent():
await asyncio.sleep(10)
i = int(time.time())
if i >= doki:
doki = i + hb