Source code for tg_pubsub.pubsub

import logging

from django.conf import settings

import redis


logger = logging.getLogger('tg_pubsub')


[docs]def create_redis_connection(): redis_host = getattr(settings, 'REDIS_HOST', 'localhost') redis_port = getattr(settings, 'REDIS_PORT', 6379) redis_db = getattr(settings, 'REDIS_DB', 0) # NB: for pubsub, the database number doesn't matter. At all. r = redis.StrictRedis(host=redis_host, port=redis_port, db=redis_db) try: r.ping() except redis.exceptions.ConnectionError as e: logger.warning("Redis isn't available, pubsub will be disabled: %s", e) return None logger.info("Connected to Redis") return r
redis_connection = create_redis_connection()
[docs]def publish(channel, message): if redis_connection is None: return try: redis_connection.publish(channel, message) except redis.exceptions.ConnectionError as e: logger.warning("Redis seems to have died: %s", e)