You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

40 lines
1.4 KiB

# coding=utf-8
from celery.task import periodic_task
from datetime import timedelta, datetime
from access.models import User, TrafSource, TrafTokenHistory
@periodic_task(run_every=timedelta(minutes=20))
def check_prepo_delay():
# Проверка просроченых задач преподавателя
for res in User.objects.filter(delay_date__lte=datetime.now(), in_role='T'):
res.delay = False
res.delay_description = ''
res.delay_date = None
res.save()
@periodic_task(run_every=timedelta(minutes=1))
def check_online():
for user in User.objects.filter(status='ON', last_time__lte=datetime.now()-timedelta(minutes=10)):
user.status = 'OFF'
user.save()
@periodic_task(run_every=timedelta(hours=1))
def check_traf_source():
for source in TrafSource.objects.filter(on=True).exclude(live_time=None):
if source.token and source.token_start + timedelta(hours=source.live_time) < datetime.now():
source.on = False
TrafTokenHistory.objects.create(token=source.token, source=source, live_time=source.live_time, date_start=source.token_start, date_end=datetime.now())
source.token = None
source.token_start = None
source.save()
#@periodic_task(run_every=timedelta(minutes=1))
#def sync_users():
# for user in User.objects.filter(sync=False):
# result = sent_sync_user(user)
# if result:
# user._set_synced()