Merge pull request 'garbage-collection' (#31) from garbage-collection into testing
All checks were successful
continuous-integration/drone/push Build is passing

Reviewed-on: #31
This commit is contained in:
2023-04-16 19:38:41 +00:00
2 changed files with 26 additions and 0 deletions

16
app/cleanup_events.py Normal file
View File

@@ -0,0 +1,16 @@
from datetime import datetime, timedelta
def cleanupEvents(db, Event):
# calculate the date one month ago
one_month_ago = datetime.now() - timedelta(days=30)
# get events older than one month
old_events = db.session.query(Event).filter(
db.func.STR_TO_DATE(Event.scheduled_date, '%m-%d-%Y') < one_month_ago.date()
).all()
# delete old events
for event in old_events:
db.session.delete(event)
db.session.commit()

View File

@@ -1,6 +1,7 @@
from celery import Celery
from celery.schedules import crontab
from create_events import createEvents
from cleanup_events import cleanupEvents
import os
from flask import Flask
from misc import currDay, datetime, time, timedelta
@@ -32,11 +33,20 @@ def runCreateEvents():
with app.app_context():
createEvents(db, currDay, Period, Event)
def runCleanupEvents():
with app.app_context():
cleanupEvents(db, Event)
# Scheduled tasks
celerymsg.conf.beat_schedule = {
'hourly-createevents': {
'task': 'worker.runCreateEvents',
# Run hourly
'schedule': crontab(hour="*", minute="59"),
},
'monthly-cleanupevents': {
'task': 'worker.runCleanupEvents',
# Run monthly
'schedule': crontab(day_of_month="29")
}
}