mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 13:03:29 +00:00
tornado: Remove explicit tornado_processes setting; compute it.
We can compute the intended number of processes from the sharding configuration. In doing so, also validate that all of the ports are contiguous. This removes a discrepancy between `scripts/lib/sharding.py` and other parts of the codebase about if merely having a `[tornado_sharding]` section is sufficient to enable sharding. Having behaviour which changes merely based on if an empty section exists is surprising. This does require that a (presumably empty) `9800` configuration line exist, but making that default explicit is useful. After this commit, configuring sharding can be done by adding to `zulip.conf`: ``` [tornado_sharding] 9800 = # default 9801 = other_realm ``` Followed by running `./scripts/refresh-sharding-and-restart`.
This commit is contained in:
committed by
Tim Abbott
parent
ece0aaa6cc
commit
2a12fedcf1
@@ -1,6 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import configparser
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
@@ -11,6 +10,7 @@ from typing import Dict
|
||||
ZULIP_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
sys.path.append(ZULIP_PATH)
|
||||
from scripts.lib.check_rabbitmq_queue import normal_queues
|
||||
from scripts.lib.zulip_tools import get_config_file, get_tornado_ports
|
||||
|
||||
states = {
|
||||
0: "OK",
|
||||
@@ -33,13 +33,8 @@ parser.add_argument('--min-threshold',
|
||||
|
||||
options = parser.parse_args()
|
||||
|
||||
config_file = configparser.RawConfigParser()
|
||||
config_file.read("/etc/zulip/zulip.conf")
|
||||
def get_config(section: str, key: str, default_value: str) -> str:
|
||||
if config_file.has_option(section, key):
|
||||
return config_file.get(section, key)
|
||||
return default_value
|
||||
TORNADO_PROCESSES = int(get_config('application_server', 'tornado_processes', '1'))
|
||||
config_file = get_config_file()
|
||||
TORNADO_PROCESSES = len(get_tornado_ports(config_file))
|
||||
|
||||
output = subprocess.check_output(['/usr/sbin/rabbitmqctl', 'list_consumers'],
|
||||
universal_newlines=True)
|
||||
|
||||
Reference in New Issue
Block a user