# 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()