Efficiently run periodic, on-demand actions

Version on this page:
LTS Haskell 16.3:0.1.6
Stackage Nightly 2020-07-04:0.1.6
Latest on Hackage:0.1.6

See all snapshots auto-update appears in

MIT licensed by Michael Snoyman
Maintained by [email protected]

Module documentation for

This version can be pinned in stack with:[email protected]:198a6e906ae8bc3c926cf4ad4a4cfc8d61484dde1ce162ec01e6fbaa0f5557a5,1219


A common problem is the desire to have an action run at a scheduled interval, but only if it is needed. For example, instead of having every web request result in a new getCurrentTime call, we’d like to have a single worker thread run every second, updating an IORef. However, if the request frequency is less than once per second, this is a pessimization, and worse, kills idle GC.

This library allows you to define actions which will either be performed by a dedicated thread or, in times of low volume, will be executed by the calling thread.

For original use case, see yesod-scaffold issue #15.


0.1.2 Added Control.Debounce

Depends on 1 package(full list with versions):
Used by 4 packages in lts-2.22(full list with versions):