diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2018-07-26 14:55:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-26 14:55:57 +0100 |
commit | ef9d51b081e443772daa88865cf55355e957b57b (patch) | |
tree | 6ffc1e3336e59b71e4526c553d8031edf48dd871 /synapse/metrics/background_process_metrics.py | |
parent | comment on event_edges (diff) | |
parent | Fix some looping_call calls which were broken in #3604 (diff) | |
download | synapse-ef9d51b081e443772daa88865cf55355e957b57b.tar.xz |
Merge pull request #3610 from matrix-org/rav/fix_looping_calls
Fix some looping_call calls which were broken in #3604
Diffstat (limited to 'synapse/metrics/background_process_metrics.py')
-rw-r--r-- | synapse/metrics/background_process_metrics.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/synapse/metrics/background_process_metrics.py b/synapse/metrics/background_process_metrics.py index 9d820e44a6..ce678d5f75 100644 --- a/synapse/metrics/background_process_metrics.py +++ b/synapse/metrics/background_process_metrics.py @@ -151,13 +151,19 @@ def run_as_background_process(desc, func, *args, **kwargs): This should be used to wrap processes which are fired off to run in the background, instead of being associated with a particular request. + It returns a Deferred which completes when the function completes, but it doesn't + follow the synapse logcontext rules, which makes it appropriate for passing to + clock.looping_call and friends (or for firing-and-forgetting in the middle of a + normal synapse inlineCallbacks function). + Args: desc (str): a description for this background process type func: a function, which may return a Deferred args: positional args for func kwargs: keyword args for func - Returns: None + Returns: Deferred which returns the result of func, but note that it does not + follow the synapse logcontext rules. """ @defer.inlineCallbacks def run(): @@ -176,4 +182,4 @@ def run_as_background_process(desc, func, *args, **kwargs): _background_processes[desc].remove(proc) with PreserveLoggingContext(): - run() + return run() |