diff --git a/eve_proxy/tasks.py b/eve_proxy/tasks.py index 4063eae..0b64b97 100644 --- a/eve_proxy/tasks.py +++ b/eve_proxy/tasks.py @@ -1,3 +1,4 @@ +from django.conf import settings import logging from datetime import datetime, timedelta from celery.decorators import task @@ -8,5 +9,16 @@ def clear_stale_cache(cache_extension=0): log = clear_stale_cache.get_logger() time = datetime.utcnow() - timedelta(seconds=cache_extension) - objs = CachedDocument.objects.filter(cached_until__lt=datetime.utcnow()).delete() - self.log.info('Removed %s stale cache documents' % objs.count()) + objs = CachedDocument.objects.filter(cached_until__lt=time) + log.info('Removing %s stale cache documents' % objs.count()) + objs.delete() + + +@task(ignore_result=True) +def clear_old_logs(): + log = clear_old_logs.get_logger() + + time = datetime.utcnow() - timedelta(day=settings.EVE_PROXY_KEEP_LOGS) + objs = ApiAccessLog.objects.filter(time_access__lt=time) + log.info('Removing %s old access logs' % objs.count()) + objs.delete() diff --git a/settings.py b/settings.py index 367a813..b87388a 100755 --- a/settings.py +++ b/settings.py @@ -155,6 +155,11 @@ FULL_API_CHARACTER_ID = 246102445 BANNED_EMAIL_DOMAINS = ['att.net'] + +## Eve Proxy settings + +EVE_PROXY_KEEP_LOGS = 30 + # try and import local settings try: from settingslocal import * @@ -176,6 +181,9 @@ CELERYBEAT_SCHEDULE = { "task": "eve_api.tasks.alliance.import_alliance_details", "schedule": timedelta(hours=6), }, + "api-log-clear": { + "task": "eve_proxy.tasks.clear_old_logs" + "schedule": timedelta(days=1) } CELERY_SEND_TASK_ERROR_EMAILS = True