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.5 KiB
40 lines
1.5 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()
|
|
|