def drop_offline_users(): try: time_limit = now() - LAST_ACTION_TIME_LIMIT for u in db().user.find({"online": True, "last_action": {"$lt": time_limit}}): try: user = User(u) user.do_logout() except: log_exception() log_warning('Error trying to log out user %s. Forcing logout...' % u.get('name')) db().user.update({"_id": u["_id"]}, {"$set": {"online": False}}) add_timeout("drop_offline_users", LAST_ACTION_TIME_LIMIT) except: log_exception() log_error('Error in task drop_offline_users.')