Signed-off-by: Rory& <root@rory.gay>
3 files changed, 8 insertions, 0 deletions
diff --git a/get_sched_tasks.sql b/get_sched_tasks.sql
new file mode 100644
index 0000000000..680342cfa2
--- /dev/null
+++ b/get_sched_tasks.sql
@@ -0,0 +1 @@
+select * from scheduled_tasks where status != 'complete';
diff --git a/synapse/config/ratelimiting.py b/synapse/config/ratelimiting.py
index 78d9d61d3c..42891e3e4c 100644
--- a/synapse/config/ratelimiting.py
+++ b/synapse/config/ratelimiting.py
@@ -84,6 +84,7 @@ class RatelimitConfig(Config):
section = "ratelimiting"
def read_config(self, config: JsonDict, **kwargs: Any) -> None:
+ self.override_max_concurrent_running_tasks = config.get("ratelimiting", {}).get("override_max_concurrent_running_tasks", None)
# Load the new-style messages config if it exists. Otherwise fall back
# to the old method.
if "rc_message" in config:
diff --git a/synapse/util/task_scheduler.py b/synapse/util/task_scheduler.py
index 353ddb70bc..a0326473ef 100644
--- a/synapse/util/task_scheduler.py
+++ b/synapse/util/task_scheduler.py
@@ -140,6 +140,12 @@ class TaskScheduler:
hook=lambda: {(self.server_name,): len(self._running_tasks)},
)
+ if hs.config.ratelimiting.override_max_concurrent_running_tasks is not None:
+ TaskScheduler.MAX_CONCURRENT_RUNNING_TASKS = (
+ hs.config.ratelimiting.override_max_concurrent_running_tasks
+ )
+ logger.warning("Max concurrent running tasks: %s, override: %s", TaskScheduler.MAX_CONCURRENT_RUNNING_TASKS, hs.config.ratelimiting.override_max_concurrent_running_tasks)
+
def register_action(
self,
function: Callable[
|