1 from datetime
import datetime
, timedelta
3 from celery
.decorators
import periodic_task
5 from django
.contrib
.auth
import get_user_model
6 from django
.conf
import settings
8 from mygpo
.celery
import celery
10 from celery
.utils
.log
import get_task_logger
11 logger
= get_task_logger(__name__
)
14 @celery.task(max_retries
=5, default_retry_delay
=60)
16 """ Syncs all of the user's sync groups """
17 from mygpo
.users
.models
import SubscriptionException
19 groups
= SyncGroup
.objects
.filter(user
=user
)
25 except SubscriptionException
:
26 # no need to retry on SubscriptionException
29 except Exception as e
:
30 logger
.exception('retrying task')
31 raise sync_user
.retry()
34 @periodic_task(run_every
=timedelta(hours
=1))
35 def remove_unactivated_users():
36 """ Remove users that have not been activated """
37 User
= get_user_model()
38 valid_days
= settings
.ACTIVATION_VALID_DAYS
39 remove_before
= datetime
.utcnow() - timedelta(days
=valid_days
)
40 logger
.warn('Removing unactivated users before %s', remove_before
)
42 users
= User
.objects
.filter(is_active
=False, date_joined__lt
=remove_before
)
43 logger
.warn('Removing %d unactivated users', users
.count())