36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
from __future__ import absolute_import, unicode_literals
|
|
|
|
from celery import shared_task
|
|
from celery.utils.log import get_task_logger
|
|
from django.conf import settings
|
|
from django.core.cache import caches
|
|
from elasticsearch import Elasticsearch
|
|
|
|
from core.utils import dtnow
|
|
from events.constants import ELK_HOST, ELK_PORT, ELK_LOGIN, ELK_PASS
|
|
from users.models import UserInfo
|
|
|
|
_log = get_task_logger(__name__)
|
|
|
|
MEDIA_ROOT = getattr(settings, 'MEDIA_ROOT')
|
|
CACHE_TIMEOUT = getattr(settings, 'REDIS_CACHE_TIMEOUT', 120)
|
|
REDIS_ELK_EVENTS_KEY = 'amount_of_aggregated_events'
|
|
|
|
|
|
@shared_task
|
|
def update_amount_of_aggregated_events():
|
|
""" Task for updating the total amount of aggregated events, stored in elasticsearch """
|
|
es = Elasticsearch([{'host': ELK_HOST, 'port': ELK_PORT}], http_auth=(ELK_LOGIN, ELK_PASS))
|
|
es_search = es.count(index=['aggregated-*', 'system-*'])
|
|
caches['redis'].set(REDIS_ELK_EVENTS_KEY, es_search['count'], CACHE_TIMEOUT)
|
|
|
|
|
|
def expire_users():
|
|
for user_info in UserInfo.objects.filter(expire_date__lte=dtnow().date(), user__is_active=True):
|
|
user_info.user.is_active = False
|
|
user_info.user.save()
|
|
|
|
|
|
@shared_task
|
|
def expire_users_task():
|
|
expire_users()
|