Document `looping_call()` functionality that will wait for the given function to finish before scheduling another (#15772)
Thanks to @erikjohnston for clarifying, https://github.com/matrix-org/synapse/pull/15743#discussion_r1226544457 We don't have to worry about calls stacking up if the given function takes longer than the scheduled time.
This commit is contained in:
parent
553f2f53e7
commit
8ddb2de553
|
@ -0,0 +1 @@
|
||||||
|
Document `looping_call()` functionality that will wait for the given function to finish before scheduling another.
|
|
@ -116,6 +116,11 @@ class Clock:
|
||||||
|
|
||||||
Waits `msec` initially before calling `f` for the first time.
|
Waits `msec` initially before calling `f` for the first time.
|
||||||
|
|
||||||
|
If the function given to `looping_call` returns an awaitable/deferred, the next
|
||||||
|
call isn't scheduled until after the returned awaitable has finished. We get
|
||||||
|
this functionality thanks to this function being a thin wrapper around
|
||||||
|
`twisted.internet.task.LoopingCall`.
|
||||||
|
|
||||||
Note that the function will be called with no logcontext, so if it is anything
|
Note that the function will be called with no logcontext, so if it is anything
|
||||||
other than trivial, you probably want to wrap it in run_as_background_process.
|
other than trivial, you probably want to wrap it in run_as_background_process.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue