J'ai une application web qui essaie de déterminer quand les gens assistent à des événements. Un participant est enregistré chaque fois qu'il se connecte à un emplacement particulier, et un participant est extrait à chaque fois qu'il se déconnecte. Le problème est que lorsque l'on détermine que quelqu'un est réellement "extrait", parce qu'il peut ne pas se déconnecter activement du système utilisateur Django, je dois trouver un moyen de l'enregistrer comme étant retiré après 24 heures. À l'heure actuelle, j'utilise une requête ORM horriblement simpliste dans un gestionnaire pour lister les utilisateurs «actifs» et «inactifs» sur le site.Post-traitement des données de présence avec Django
expires = datetime.datetime.today() - datetime.timedelta(seconds=settings.AUTO_CHECKOUT_AFTER)
# Get people who were last active more than 24 hours ago OR who have checked out
inactive_users = User.objects.all().filter(Q(attendee__last_active__lt = expires) \
| Q(attendee__checked_out__lte = datetime.datetime.now()), \
attendee__location=location).exclude(attendee__checked_out = None, attendee__checked_in__gte = expires).distinct()
Quelle est la meilleure façon de le faire? Je suppose qu'il faut un Django équivalent à un travail CRON pour extraire automatiquement les utilisateurs qui sont inactifs.