2 files changed, 13 insertions, 0 deletions
diff --git a/changelog.d/15991.misc b/changelog.d/15991.misc
new file mode 100644
index 0000000000..18f388cff8
--- /dev/null
+++ b/changelog.d/15991.misc
@@ -0,0 +1 @@
+Allow modules to check whether the current worker is configured to run background tasks.
\ No newline at end of file
diff --git a/synapse/module_api/__init__.py b/synapse/module_api/__init__.py
index 95f7800111..ba1a925003 100644
--- a/synapse/module_api/__init__.py
+++ b/synapse/module_api/__init__.py
@@ -1230,6 +1230,18 @@ class ModuleApi:
f,
)
+ def should_run_background_tasks(self) -> bool:
+ """
+ Return true if and only if the current worker is configured to run
+ background tasks.
+ There should only be one worker configured to run background tasks, so
+ this is helpful when you need to only run a task on one worker but don't
+ have any other good way to choose which one.
+
+ Added in Synapse v1.89.0.
+ """
+ return self._hs.config.worker.run_background_tasks
+
async def sleep(self, seconds: float) -> None:
"""Sleeps for the given number of seconds.
|