import json import os from django.conf import settings from zerver.models import Realm shard_map = {} if os.path.exists("/etc/zulip/sharding.json"): with open("/etc/zulip/sharding.json") as f: shard_map = json.loads(f.read()) def get_tornado_port(realm: Realm) -> int: return shard_map.get(realm.host, settings.TORNADO_PORTS[0]) def get_tornado_uri(realm: Realm) -> str: port = get_tornado_port(realm) return f"http://127.0.0.1:{port}" def notify_tornado_queue_name(port: int) -> str: if settings.TORNADO_PROCESSES == 1: return "notify_tornado" return f"notify_tornado_port_{port}"