def __init__(self, connection): super(UserOnlyCustomSession, self).__init__(connection) self.keys = [] self.redis_client = get_redis_cli()
from swampdragon.pubsub_providers.redis_publisher import get_redis_cli from swampdragon.pubsub_providers.data_publisher import publish_data from time import time from tornado.ioloop import PeriodicCallback ONLINE_USERS = 'online_users' WINDOW_SIZE = 60 * 5 # Five minutes USER_LIST = 'users_online' CLEANUP_FREQUENCY = WINDOW_SIZE # Cleanup every five minutes CLEANUP_KEY = 'sd_online_ct' redis_cli = get_redis_cli() def current_timestamp_key(): ts = int(time() / WINDOW_SIZE) return 'online_users.{}'.format(ts) def past_timestamp_key(): ts = int((time() - WINDOW_SIZE) / WINDOW_SIZE) return 'online_users.{}'.format(ts) def _clean(): # The cleanup is already running or isn't ready to run yet if redis_cli.exists(CLEANUP_KEY): return redis_cli.set(CLEANUP_KEY, 1, CLEANUP_FREQUENCY) past_key = past_timestamp_key()
def __init__(self): self.redis_cli = get_redis_cli()
def setUp(self): self.rum = RedisUserManager() self.redis = get_redis_cli() self.cleanup_online_users()